:root{
  --ink:#150f0e;
  --ink-soft:#241a18;
  --ink-line: rgba(244,236,223,0.14);
  --red:#e2382f;
  --red-deep:#8f1c16;
  --paper:#f4ecdf;
  --paper-2:#e9dcc6;
  --paper-dim:#cdbfa9;
  --ink-dim:#a3958f;
  color-scheme: light;
}
:root[data-theme="dark"]{ --paper:#f4ecdf; --ink:#150f0e; }

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
html,body{margin:0;padding:0;}
body{
  font-family:'Manrope', sans-serif;
  background:var(--ink);
  color:var(--paper);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;}
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible{
  outline:2px solid var(--red);outline-offset:2px;
}
.wrap{max-width:1180px;margin:0 auto;padding:0 28px;}
h1,h2,h3,h4{font-family:'Unbounded',sans-serif;margin:0;}

/* cut-corner motif used across buttons / tickets / panels */
.cut{clip-path:polygon(0 0, calc(100% - 22px) 0, 100% 22px, 100% 100%, 0 100%);}
.cut-sm{clip-path:polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 0 100%);}

/* ============ HEADER ============ */
header{
  position:sticky;top:0;z-index:50;
  background:rgba(21,15,14,0.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--ink-line);
}
.nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 28px;max-width:1180px;margin:0 auto;gap:18px;
}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;cursor:pointer;}
.brand img{height:30px;width:auto;}
.brand-word{height:22px;width:auto;}
.nav-links{display:flex;align-items:center;gap:26px;flex:1;justify-content:center;}
.nav-links a{
  color:var(--paper-dim);font-size:14px;font-weight:600;
  text-decoration:none;transition:color 0.15s ease;position:relative;
}
.nav-links a:hover{color:var(--paper);}
.nav-call{display:flex;align-items:center;gap:14px;}
.tel-link{font-weight:700;color:var(--paper);text-decoration:none;font-size:14.5px;white-space:nowrap;}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  border:none;cursor:pointer;white-space:nowrap;
  font-family:'Manrope',sans-serif;font-weight:700;
  text-decoration:none;
  transition:transform 0.15s ease, background 0.15s ease;
}
.btn:active{transform:scale(0.97);}
.btn-order{
  background:var(--red);color:var(--paper);
  padding:11px 20px 11px 18px;font-size:14px;
}
.btn-order:hover{background:#c72e26;}

/* ============ HERO ============ */
.hero{
  position:relative;background:var(--ink);
  padding:64px 0 0;overflow:hidden;
}
.hero-grid{
  display:grid;grid-template-columns:1.05fr 1fr;gap:20px;align-items:center;
  max-width:1180px;margin:0 auto;padding:0 28px;
}
.hero-eyebrow{
  color:var(--red);font-size:14px;font-weight:700;
  letter-spacing:0.3px;margin:0 0 14px;
}
.hero-title{
  font-weight:700;font-size:clamp(38px, 5.2vw, 60px);
  line-height:1.04;color:var(--paper);margin:0 0 20px;
  max-width:11ch;
}
.hero-title em{color:var(--red);font-style:normal;}
.hero-sub{
  font-size:clamp(15.5px,2vw,17.5px);
  color:var(--paper-dim);font-weight:500;
  max-width:440px;margin:0 0 32px;line-height:1.6;
}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:52px;}
.cta-primary{
  background:var(--red);color:var(--paper);
  padding:16px 26px 16px 22px;font-size:15.5px;
}
.cta-primary:hover{background:#c72e26;}
.cta-secondary{
  background:transparent;color:var(--paper);
  border:1.5px solid var(--ink-line);
  padding:14.5px 24px 14.5px 20px;font-size:15.5px;
}
.cta-secondary:hover{border-color:rgba(244,236,223,0.5);}
.phone-choice{position:relative;}
.phone-choice-btn{font-family:inherit;}
.phone-choice-menu{
  position:absolute;top:calc(100% + 10px);left:0;z-index:20;min-width:230px;
  background:var(--ink-soft);border:1px solid var(--ink-line);
  box-shadow:0 18px 40px rgba(0,0,0,0.35);
  opacity:0;visibility:hidden;transform:translateY(-6px);
  transition:opacity 0.15s ease,transform 0.15s ease,visibility 0.15s;
}
.phone-choice.open .phone-choice-menu{opacity:1;visibility:visible;transform:translateY(0);}
.phone-choice-menu a{
  display:flex;flex-direction:column;gap:2px;padding:12px 18px;
  text-decoration:none;border-bottom:1px solid var(--ink-line);
}
.phone-choice-menu a:last-child{border-bottom:none;}
.phone-choice-menu a span{font-size:11.5px;color:var(--paper-dim);}
.phone-choice-menu a strong{font-size:15px;font-weight:700;color:var(--paper);}
.phone-choice-menu a:hover strong{color:var(--red);}
.hero-strip{
  display:flex;gap:36px;flex-wrap:wrap;
  border-top:1px solid var(--ink-line);padding:26px 0 30px;
}
.strip-item{text-align:left;}
.strip-num{font-family:'Unbounded',sans-serif;font-weight:600;font-size:24px;color:var(--paper);display:block;}
.strip-label{font-size:12.5px;font-weight:500;color:var(--ink-dim);}

.hero-art{position:relative;height:340px;}
.hero-art img{
  position:absolute;right:-8%;top:50%;
  width:130%;max-width:640px;
  transform:translateY(-50%) translateX(40px);
  opacity:0;
  animation:prowlIn 1.1s cubic-bezier(.16,.9,.35,1) 0.15s forwards;
}
@keyframes prowlIn{
  0%{opacity:0; transform:translateY(-50%) translateX(70px) scaleX(1.04);}
  100%{opacity:1; transform:translateY(-50%) translateX(0) scaleX(1);}
}

/* ============ SECTION HEADS ============ */
.section{padding:88px 0;position:relative;}
.section.on-paper{background:var(--paper);color:var(--ink);}
.section.on-ink{background:var(--ink);color:var(--paper);}
.section-head{max-width:600px;margin:0 0 48px;position:relative;z-index:2;}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center;}
.section-tag{
  color:var(--red);font-weight:700;font-size:13px;margin:0 0 14px;
  display:flex;align-items:center;gap:10px;letter-spacing:0.2px;
}
.section-tag::before{content:'';width:26px;height:2px;background:var(--red);display:inline-block;flex-shrink:0;}
.section-head.center .section-tag{justify-content:center;}
.section-title{font-weight:600;font-size:clamp(26px,4vw,36px);margin:0 0 14px;}
.on-paper .section-title{color:var(--ink);}
.on-ink .section-title{color:var(--paper);}
.section-desc{font-size:15.5px;line-height:1.65;max-width:44ch;}
.on-paper .section-desc{color:#5e5147;}
.on-ink .section-desc{color:var(--paper-dim);}

.watermark{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-46%);
  width:min(1100px,150%);opacity:0.045;pointer-events:none;z-index:1;
}
.on-ink .watermark{opacity:0.06;}

/* ============ SERVICES (editorial index) ============ */
.service-list{max-width:900px;margin:0 auto;position:relative;z-index:2;}
.service-row{
  border-top:1px solid rgba(21,15,14,0.12);
  padding:26px 0;cursor:pointer;
}
.service-row:last-child{border-bottom:1px solid rgba(21,15,14,0.12);}
.service-top{display:flex;align-items:flex-start;gap:22px;}
.service-index{
  font-family:'Unbounded',sans-serif;font-weight:600;font-size:14px;
  color:var(--paper-2);color:#c9b79b;width:34px;flex-shrink:0;padding-top:4px;
  transition:color 0.2s ease;
}
.service-row.open .service-index, .service-row:hover .service-index{color:var(--red);}
.service-main{flex:1;}
.service-main h3{font-weight:600;font-size:19px;margin:0 0 6px;color:var(--ink);}
.service-main p{margin:0;font-size:14.5px;color:#6b5e53;line-height:1.55;max-width:52ch;}
.service-chevron{
  width:20px;height:20px;flex-shrink:0;margin-top:6px;color:#8a7b6c;
  transition:transform 0.25s ease;
}
.service-chevron svg{width:100%;height:100%;stroke:currentColor;}
.service-row.open .service-chevron{transform:rotate(45deg);color:var(--red);}
.service-detail{max-height:0;opacity:0;overflow:hidden;transition:max-height 0.35s ease, opacity 0.3s ease;}
.service-row.open .service-detail{max-height:260px;opacity:1;margin-top:18px;}
.service-detail-inner{padding-left:56px;}
.service-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;}
.service-steps li{display:flex;align-items:flex-start;gap:10px;font-size:13.5px;color:#5e5147;line-height:1.5;}
.step-num{
  flex-shrink:0;width:19px;height:19px;
  background:var(--red);color:var(--paper);
  font-size:10.5px;font-weight:700;font-family:'Manrope',sans-serif;
  display:flex;align-items:center;justify-content:center;margin-top:1px;
  clip-path:polygon(0 0, 100% 0, 100% 100%, 0 100%);
}

/* ============ PACKAGES (passes) ============ */
.packages-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:22px;
  max-width:1020px;margin:0 auto;position:relative;z-index:2;
}
.pass{
  background:var(--ink-soft);border:1px solid var(--ink-line);
  padding:30px 26px 26px;position:relative;
}
.pass.featured{background:var(--red);border-color:transparent;}
.pass-ribbon{
  position:absolute;top:18px;right:-30px;
  background:var(--ink);color:var(--paper);
  font-size:11px;font-weight:700;letter-spacing:0.3px;
  padding:5px 34px;transform:rotate(6deg);
}
.pass h3{font-weight:600;font-size:20px;color:var(--paper);margin-bottom:4px;}
.pass-price{font-family:'Unbounded',sans-serif;font-weight:600;font-size:27px;color:var(--paper);margin-bottom:22px;}
.pass-price span{font-family:'Manrope',sans-serif;font-size:13px;font-weight:600;opacity:0.7;}
.pass-tear{border-top:1.5px dashed rgba(244,236,223,0.3);margin-bottom:20px;position:relative;}
.pass-tear::before,.pass-tear::after{
  content:'';position:absolute;top:-8px;width:16px;height:16px;border-radius:50%;background:var(--ink);
}
.pass.featured .pass-tear::before,.pass.featured .pass-tear::after{background:var(--red);}
.pass-tear::before{left:-26px;}
.pass-tear::after{right:-26px;}
.pass-list{list-style:none;margin:0 0 26px;padding:0;display:flex;flex-direction:column;gap:11px;}
.pass-list li{display:flex;align-items:flex-start;gap:9px;font-size:13.5px;color:var(--paper-dim);line-height:1.5;}
.pass.featured .pass-list li{color:rgba(244,236,223,0.92);}
.pass-list svg{width:15px;height:15px;flex-shrink:0;margin-top:2px;stroke:var(--red);}
.pass.featured .pass-list svg{stroke:var(--paper);}
.pass-cta{
  width:100%;background:transparent;color:var(--paper);
  border:1.5px solid rgba(244,236,223,0.3);
  padding:13px;font-size:14px;
}
.pass-cta:hover{border-color:var(--paper);}
.pass.featured .pass-cta{background:var(--ink);border-color:var(--ink);}
.pass.featured .pass-cta:hover{background:#000;}

/* ============ PRICE LIST ============ */
.price-panel{
  max-width:900px;margin:0 auto;position:relative;z-index:2;
  background:#fffaf1;border:1px solid rgba(21,15,14,0.1);
  padding:26px 26px 22px;
}
.price-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.price-matrix{width:100%;border-collapse:collapse;min-width:620px;}
.price-matrix th{
  font-family:'Unbounded',sans-serif;font-weight:600;font-size:10.5px;
  text-transform:uppercase;letter-spacing:0.3px;color:var(--red);
  text-align:center;padding:10px 12px;border-bottom:2px solid rgba(21,15,14,0.14);white-space:nowrap;
}
.price-matrix th:first-child{text-align:left;color:var(--ink);}
.price-matrix td{padding:10px 12px;border-bottom:1px solid rgba(21,15,14,0.07);text-align:center;font-family:'Unbounded',sans-serif;font-weight:500;font-size:13px;white-space:nowrap;color:var(--ink);}
.price-matrix td:first-child{text-align:left;font-family:'Manrope',sans-serif;font-weight:600;font-size:14px;white-space:normal;min-width:160px;}
.price-matrix tbody tr:nth-child(even) td{background:rgba(21,15,14,0.025);}
.price-extra{margin:16px 2px 0;font-size:13px;color:#6b5e53;}
.price-extra strong{color:var(--ink);}
.price-matrix td.price-span{text-align:center;font-family:'Manrope',sans-serif;font-weight:700;color:var(--red);font-size:13.5px;}
.price-board{
  max-width:760px;margin:0 auto;position:relative;z-index:2;
  background:#fffaf1;border:1px solid rgba(21,15,14,0.1);
  padding:8px 34px 20px;transform:rotate(-0.4deg);
}
.price-cat{
  font-family:'Unbounded',sans-serif;font-weight:600;font-size:12.5px;
  letter-spacing:0.3px;color:var(--red);margin:26px 0 10px;
}
.price-row{
  display:flex;align-items:baseline;gap:10px;
  text-decoration:none;color:var(--ink);
  padding:10px 0;border-bottom:1px dotted rgba(21,15,14,0.18);
}
.price-name{font-size:15px;font-weight:600;transition:color 0.15s ease;white-space:nowrap;}
.price-leader{flex:1;border-bottom:1px dotted rgba(21,15,14,0.35);transform:translateY(-4px);}
.price-value{font-family:'Unbounded',sans-serif;font-weight:600;font-size:15px;white-space:nowrap;}
.price-note{
  max-width:560px;margin:30px auto 0;text-align:center;
  font-size:15px;font-weight:600;color:var(--ink);line-height:1.55;
  position:relative;z-index:2;
}

/* ============ WHY US (stat bar) ============ */
.why-bar{
  display:flex;flex-wrap:wrap;max-width:1020px;margin:0 auto;
  position:relative;z-index:2;
}
.why-item{
  flex:1;min-width:200px;padding:0 30px;
  border-left:1px solid var(--ink-line);
}
.why-item:first-child{border-left:none;padding-left:0;}
.why-num{font-family:'Unbounded',sans-serif;font-weight:700;font-size:38px;color:var(--red);margin-bottom:8px;}
.why-item h4{font-weight:600;font-size:15.5px;color:var(--paper);margin:0 0 6px;}
.why-item p{margin:0;font-size:13.5px;color:var(--paper-dim);line-height:1.5;}

/* ============ REVIEWS ============ */
.review-list{max-width:760px;margin:0 auto;position:relative;z-index:2;display:flex;flex-direction:column;gap:2px;}
.review{
  padding:26px 0 26px 26px;border-left:3px solid var(--red);
  display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:start;
}
.review:nth-child(even){margin-left:8%;}
.review-avatar{
  width:42px;height:42px;flex-shrink:0;
  background:var(--ink);color:var(--paper);
  display:flex;align-items:center;justify-content:center;
  font-family:'Unbounded',sans-serif;font-weight:600;font-size:14px;
  clip-path:polygon(0 0, calc(100% - 8px) 0, 100% 8px, 100% 100%, 0 100%);
}
.review-stars{display:flex;gap:2px;margin-bottom:8px;}
.review-stars svg{width:13px;height:13px;fill:var(--red);stroke:none;}
.review-text{font-size:15px;color:var(--ink);line-height:1.6;margin:0 0 12px;max-width:56ch;}
.review-name{font-size:13.5px;font-weight:700;color:var(--ink);}
.review-role{font-size:12px;color:#8a7b6c;}

/* ============ FAQ ============ */
.faq-list{max-width:720px;margin:0 auto;position:relative;z-index:2;}
.faq-item{border-top:1px solid rgba(21,15,14,0.12);padding:20px 0;cursor:pointer;}
.faq-item:last-child{border-bottom:1px solid rgba(21,15,14,0.12);}
.faq-top{display:flex;align-items:center;justify-content:space-between;gap:14px;}
.faq-top h4{margin:0;font-size:15.5px;font-weight:600;color:var(--ink);font-family:'Manrope',sans-serif;}
.faq-item .service-chevron{width:18px;height:18px;color:#8a7b6c;}
.faq-item.open .service-chevron{transform:rotate(45deg);color:var(--red);}
.faq-answer{max-height:0;opacity:0;overflow:hidden;transition:max-height 0.3s ease, opacity 0.25s ease;}
.faq-item.open .faq-answer{max-height:220px;opacity:1;margin-top:12px;}
.faq-answer p{margin:0;font-size:14px;color:#6b5e53;line-height:1.6;max-width:56ch;}

/* ============ CONTACTS ============ */
.contacts-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:26px;
  max-width:1020px;margin:0 auto;align-items:stretch;position:relative;z-index:2;
}
.contacts-card{
  background:var(--ink-soft);border:1px solid var(--ink-line);
  padding:32px;position:relative;
}
.seal{
  position:absolute;top:-22px;right:-18px;width:104px;height:104px;
  border-radius:50%;overflow:hidden;border:3px solid var(--ink);
  transform:rotate(10deg);box-shadow:0 10px 26px -8px rgba(0,0,0,0.6);
}
.seal img{width:100%;height:100%;object-fit:cover;}
.contact-row{display:flex;align-items:flex-start;gap:14px;padding:14px 0;border-bottom:1px solid var(--ink-line);}
.contact-row:last-child{border-bottom:none;}
.contact-row svg{width:19px;height:19px;stroke:var(--red);flex-shrink:0;margin-top:2px;}
.contact-row h4{margin:0 0 3px;font-size:14px;font-weight:700;color:var(--paper);}
.contact-row p{margin:0;font-size:13.5px;color:var(--paper-dim);line-height:1.5;}
.contact-row a{text-decoration:none;}
.map-link{color:var(--paper);font-weight:700;border-bottom:1px dashed rgba(244,236,223,0.45);transition:color 0.15s ease,border-color 0.15s ease;}
.map-link:hover{color:var(--red);border-color:var(--red);}
.addr-note{display:block;margin-top:3px;font-size:12px;color:var(--paper-dim);font-weight:500;}
.hours-table{width:100%;border-collapse:collapse;font-size:13.5px;}
.hours-table td{padding:3px 0;color:var(--paper-dim);}
.hours-table td:last-child{text-align:right;font-weight:600;color:var(--paper);}
.map-frame{
  border:1px solid var(--ink-line);overflow:hidden;min-height:280px;
  display:flex;align-items:center;justify-content:center;gap:36px;flex-wrap:wrap;position:relative;
  background:
    linear-gradient(var(--ink-line) 1px, transparent 1px) 0 0/44px 44px,
    linear-gradient(90deg, var(--ink-line) 1px, transparent 1px) 0 0/44px 44px,
    var(--ink-soft);
}
.map-pin{display:flex;flex-direction:column;align-items:center;text-decoration:none;cursor:pointer;transition:transform 0.15s ease;}
.map-pin:hover{transform:translateY(-3px);}
.map-pin svg{width:36px;height:36px;}
.map-pin-label{
  background:var(--red);color:var(--paper);font-size:12px;font-weight:700;
  padding:5px 14px;margin-top:8px;white-space:nowrap;
}

/* ============ ORDER SECTION ============ */
.order-section{background:linear-gradient(160deg, var(--red-deep), #4a0d09);padding:88px 0;position:relative;z-index:2;}
.order-wrap{max-width:980px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center;}
.order-copy h2{font-weight:600;color:var(--paper);font-size:clamp(26px,4vw,33px);margin:0 0 16px;}
.order-copy p{color:rgba(244,236,223,0.82);font-size:15px;line-height:1.6;margin:0 0 24px;max-width:40ch;}
.order-phone{display:flex;align-items:center;gap:12px;margin-bottom:16px;}
.order-phone svg{width:20px;height:20px;stroke:var(--paper);flex-shrink:0;}
.order-phone a{color:var(--paper);font-weight:700;font-size:20px;text-decoration:none;}
.addr-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px;}
.addr-tab{
  font-family:inherit;cursor:pointer;padding:9px 14px;font-size:13px;font-weight:700;
  border:1px solid var(--ink-line);background:transparent;color:var(--paper-dim);
  transition:border-color 0.15s ease,color 0.15s ease,background 0.15s ease;
}
.addr-tab:hover{border-color:var(--red);color:var(--paper);}
.addr-tab.active{border-color:var(--red);background:var(--red);color:var(--paper);}
.order-hours{color:rgba(244,236,223,0.7);font-size:13.5px;}
.order-form{background:var(--paper);padding:30px;}
.order-form h3{font-weight:600;color:var(--ink);margin:0 0 4px;font-size:19px;}
.order-form .sub{color:#6b5e53;font-size:13.5px;margin:0 0 20px;}
.field{margin-bottom:14px;}
.field label{display:block;font-size:12.5px;font-weight:700;color:var(--ink);margin-bottom:6px;letter-spacing:0.2px;}
.field input,.field select{
  width:100%;padding:13px 14px;border-radius:2px;
  border:1.5px solid rgba(21,15,14,0.16);font-size:15px;
  font-family:'Manrope',sans-serif;background:#fffaf1;color:var(--ink);
}
.field input:focus,.field select:focus{outline:2px solid var(--red);border-color:transparent;}
.form-submit{
  width:100%;background:var(--ink);color:var(--paper);border:none;
  padding:15px;font-weight:700;font-size:15px;cursor:pointer;margin-top:4px;
  font-family:'Manrope',sans-serif;transition:background 0.18s ease;
}
.form-submit:hover{background:#000;}
.form-error{color:#c72e26;font-size:12.5px;margin-top:-8px;margin-bottom:12px;display:none;}
.form-success{display:none;text-align:center;padding:18px 6px;}
.form-success svg{width:40px;height:40px;stroke:var(--red);margin-bottom:10px;}
.form-success h4{font-family:'Unbounded',sans-serif;margin:0 0 6px;color:var(--ink);font-size:16px;}
.form-success p{color:#6b5e53;font-size:14px;margin:0;}

/* ============ GALLERY ============ */
.gallery-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:10px;
  max-width:1100px;margin:0 auto;position:relative;z-index:2;
}
.gallery-item{
  position:relative;aspect-ratio:4/3;overflow:hidden;padding:0;border:none;
  cursor:pointer;background:var(--ink-soft);
}
.gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 0.35s ease;}
.gallery-item:hover img{transform:scale(1.06);}
.gallery-item::after{
  content:'';position:absolute;inset:0;background:rgba(21,15,14,0);transition:background 0.2s ease;
}
.gallery-item:hover::after{background:rgba(21,15,14,0.08);}
.lightbox{
  position:fixed;inset:0;background:rgba(10,7,7,0.92);
  display:none;align-items:center;justify-content:center;z-index:300;padding:26px;
}
.lightbox.open{display:flex;}
.lightbox img{max-width:100%;max-height:90vh;object-fit:contain;}
.lightbox-close{
  position:fixed;top:20px;right:20px;background:rgba(244,236,223,0.1);border:none;cursor:pointer;
  color:var(--paper);width:42px;height:42px;display:flex;align-items:center;justify-content:center;
}
.lightbox-close:hover{background:rgba(244,236,223,0.2);}
.lightbox-close svg{width:22px;height:22px;stroke:currentColor;}
@media (max-width:720px){
  .gallery-grid{grid-template-columns:repeat(2,1fr);gap:8px;}
}


/* ============ REVIEW MODAL ============ */
.modal-overlay{
  position:fixed;inset:0;background:rgba(21,15,14,0.6);backdrop-filter:blur(3px);
  display:none;align-items:center;justify-content:center;z-index:200;padding:20px;
}
.modal-overlay.open{display:flex;}
.modal-panel{
  background:var(--paper);max-width:440px;width:100%;padding:32px 28px 28px;
  position:relative;max-height:90vh;overflow-y:auto;
}
.modal-panel h3{font-weight:600;font-size:19px;color:var(--ink);margin:0 0 4px;}
.modal-panel .sub{color:#6b5e53;font-size:13.5px;margin:0 0 22px;}
.modal-close{
  position:absolute;top:14px;right:14px;background:none;border:none;cursor:pointer;
  color:#8a7b6c;width:30px;height:30px;display:flex;align-items:center;justify-content:center;
}
.modal-close:hover{color:var(--ink);}
.modal-close svg{width:20px;height:20px;stroke:currentColor;}
.field textarea{
  width:100%;padding:13px 14px;border:1.5px solid rgba(21,15,14,0.16);
  font-size:15px;font-family:'Manrope',sans-serif;background:#fffaf1;color:var(--ink);
  resize:vertical;min-height:96px;border-radius:2px;
}
.field textarea:focus{outline:2px solid var(--red);border-color:transparent;}
.star-picker{display:flex;gap:6px;margin-bottom:6px;}
.star-picker button{background:none;border:none;padding:2px;cursor:pointer;line-height:0;}
.star-picker svg{width:30px;height:30px;fill:none;stroke:#c9b79b;stroke-width:1.5;transition:fill 0.15s ease,stroke 0.15s ease;}
.star-picker button.on svg{fill:var(--red);stroke:var(--red);}
.rating-error{color:#c72e26;font-size:12.5px;margin:2px 0 14px;display:none;}


/* ============ FOOTER ============ */
footer{background:var(--ink);color:var(--paper-dim);padding:44px 28px 30px;text-align:center;border-top:1px solid var(--ink-line);}
footer .brand-word{height:20px;margin:0 auto 10px;}
footer p{margin:4px 0;font-size:13px;}
footer a{text-decoration:none;color:var(--paper-dim);}

@media (max-width:900px){
  .nav-links{display:none;}
  .hero-grid{grid-template-columns:1fr;}
  .hero-art{display:none;}
  .packages-grid{grid-template-columns:1fr;}
  .contacts-grid{grid-template-columns:1fr;}
  .order-wrap{grid-template-columns:1fr;gap:36px;}
  .why-item{border-left:none;border-top:1px solid var(--ink-line);padding:20px 0 0;margin-top:20px;}
  .why-item:first-child{border-top:none;margin-top:0;padding-top:0;}
}
@media (max-width:720px){
  .nav-call .tel-link{display:none;}
  .section{padding:64px 0;}
  .price-row{flex-wrap:wrap;}
  .review:nth-child(even){margin-left:0;}

  /* price matrix -> stacked cards, no horizontal scroll needed */
  .price-table-wrap{overflow-x:visible;}
  .price-matrix{min-width:0;width:100%;}
  .price-matrix thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;}
  .price-matrix tbody tr{
    display:grid;grid-template-columns:1fr 1fr;gap:2px 10px;
    padding:14px 0;border-bottom:1px solid rgba(21,15,14,0.1);
  }
  .price-matrix tbody tr:nth-child(even){background:none;}
  .price-matrix td{
    display:flex;align-items:center;justify-content:space-between;gap:8px;
    padding:3px 0;border-bottom:none;white-space:normal;text-align:left;
  }
  .price-matrix td.svc-name{
    grid-column:1 / -1;padding:0 0 6px;font-size:14.5px;font-weight:700;color:var(--ink);
  }
  .price-matrix td[data-label]::before{
    content:attr(data-label);font-family:'Manrope',sans-serif;font-weight:500;
    font-size:11.5px;color:#8a7b6c;text-transform:none;
  }
  .price-matrix td.price-span{grid-column:1 / -1;justify-content:flex-start;padding-top:2px;}
}
@media (max-width:420px){
  .brand img{height:24px;}
  .btn-order{padding:9px 14px;font-size:13px;}
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{transition:none !important;animation:none !important;}
  .hero-art img{opacity:1;transform:translateY(-50%);}
}

/* ============ PROFESSIONAL REDESIGN OVERRIDES ============ */
.nav{max-width:1240px;padding:13px 30px;}
.nav-links{gap:30px;}
.nav-links a{font-size:13px;text-transform:uppercase;letter-spacing:.05em;}
.nav-links a::after{content:'';position:absolute;left:0;right:100%;bottom:-7px;height:2px;background:var(--red);transition:right .2s ease;}
.nav-links a:hover::after{right:0;}

.hero{padding:48px 0 0;background:radial-gradient(circle at 76% 38%,rgba(226,56,47,.13),transparent 30%),var(--ink);}
.hero-grid{max-width:1240px;grid-template-columns:.92fr 1.08fr;gap:42px;}
.hero-title{font-size:clamp(40px,5vw,62px);max-width:12ch;letter-spacing:-.035em;}
.hero-sub{max-width:500px;}
.section-head{margin-bottom:42px;}
.menu-pills{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px;}
.menu-pills a{display:inline-flex;padding:8px 13px;border:1px solid rgba(21,15,14,.14);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;text-decoration:none;color:#5e5147;background:rgba(255,255,255,.28);}
.menu-pills a:hover{border-color:var(--red);color:var(--red);}

/* turn the price area into a real printed-style menu */
#prices{background:#eee3d2;}
.price-panel{background:#fbf5eb;border:1px solid rgba(21,15,14,.13);box-shadow:0 18px 50px rgba(21,15,14,.08);}
.price-matrix thead th{background:var(--ink);color:var(--paper);font-size:11px;text-transform:uppercase;letter-spacing:.06em;}
.price-matrix tbody tr:nth-child(even){background:rgba(201,183,155,.10);}
.price-matrix td{font-size:14px;}
.price-matrix td:not(.svc-name){font-weight:800;}
.price-board{background:#fbf5eb;border:1px solid rgba(21,15,14,.13);box-shadow:0 18px 50px rgba(21,15,14,.06);padding:8px 24px;}
.price-row{padding:15px 0;}
.price-value{color:var(--red);font-weight:800;}

/* editorial gallery instead of an ordinary photo grid */
.gallery-showcase{display:grid;grid-template-columns:1.25fr .75fr;gap:14px;max-width:1120px;margin:0 auto;}
.gallery-feature,.gallery-item,.gallery-thumb{position:relative;border:0;padding:0;overflow:hidden;cursor:pointer;background:#211816;font-family:inherit;}
.gallery-feature{min-height:560px;text-align:left;}
.gallery-feature img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s ease;}
.gallery-feature:hover img,.gallery-item:hover img,.gallery-thumb:hover img{transform:scale(1.035);}
.gallery-caption{position:absolute;left:22px;bottom:22px;display:flex;flex-direction:column;gap:3px;background:rgba(21,15,14,.88);color:var(--paper);padding:14px 17px;min-width:220px;text-align:left;}
.gallery-caption strong{font:600 15px Unbounded,sans-serif;}
.gallery-caption small{font-size:12px;color:var(--paper-dim);}
.gallery-side{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:14px;}
.gallery-side .gallery-item-wide{grid-column:1/-1;}
.gallery-item{aspect-ratio:auto;min-height:0;}
.gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s ease;}
.gallery-item span{position:absolute;left:12px;bottom:12px;background:var(--paper);color:var(--ink);padding:6px 9px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;}
.gallery-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-width:1120px;margin:10px auto 0;}
.gallery-thumb{aspect-ratio:16/9;}
.gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease;}

/* section rhythm */
#services .service-list{background:#fbf5eb;padding:0 28px;border:1px solid rgba(21,15,14,.1);box-shadow:0 14px 40px rgba(21,15,14,.06);}
#services .service-row{padding:24px 0;}
#reviews .review{background:#fbf5eb;box-shadow:0 12px 35px rgba(21,15,14,.06);}
.contacts-card,.map-frame{box-shadow:0 18px 45px rgba(0,0,0,.18);}

@media(max-width:900px){
  .hero-grid{grid-template-columns:1fr;gap:15px;position:relative;}
  .hero-grid>div:first-child{position:relative;z-index:1;}
  .hero-art{display:block;position:absolute;top:-8px;left:50%;transform:translateX(-50%);width:82%;max-width:340px;height:auto;z-index:0;opacity:.14;pointer-events:none;}
  .hero-art img{position:static;width:100%;transform:none;opacity:1;animation:none;}
  .gallery-showcase{grid-template-columns:1fr;}
  .gallery-feature{min-height:420px;}
  .gallery-side{min-height:360px;}
}
@media(max-width:720px){
  .nav{padding:11px 16px;}
  .nav-links{
    display:flex;flex-wrap:wrap;justify-content:center;align-items:center;
    gap:10px 16px;order:3;flex-basis:100%;padding-top:10px;
    margin-top:10px;border-top:1px solid var(--ink-line);
  }
  .nav-links a{font-size:12.5px;white-space:nowrap;}
  .nav{flex-wrap:wrap;}
  .nav-call{margin-left:auto;}
  .nav-call .tel-link{display:none;}
  .hero{padding-top:28px;}
  .hero-title{font-size:39px;}
  .hero-strip{gap:20px;}
  .strip-num{font-size:19px;}
  #services .service-list{padding:0 18px;}
  .gallery-feature{min-height:320px;}
  .gallery-side{min-height:300px;gap:8px;}
  .gallery-showcase{gap:8px;}
  .gallery-strip{gap:6px;}
  .gallery-caption{left:12px;bottom:12px;min-width:0;max-width:80%;padding:10px 12px;}
  .gallery-caption strong{font-size:12px;}
}
