@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,500&family=Montserrat:wght@400;500;600;700&display=swap');

:root{
  --rose:#D8A7B1;
  --rose-deep:#c58f9b;
  --ivory:#FAF7F2;
  --sage:#A8B8A5;
  --sand:#D9C8B4;
  --charcoal:#3F3A36;
  --lavender:#C8BDD9;
  --serif:'Cormorant Garamond', serif;
  --sans:'Montserrat', sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{background:var(--ivory);color:var(--charcoal);font-family:var(--sans);line-height:1.6;}

/* Branded keyboard focus state — charcoal outline gives ~11:1 contrast against the ivory
   background (well above the WCAG 1.4.11 non-text 3:1 minimum), with a soft rose glow for
   brand character. Applies to every interactive element sitewide. */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible,
select:focus-visible, [tabindex]:focus-visible {
  outline: 2.5px solid var(--charcoal);
  outline-offset: 3px;
  box-shadow: 0 0 0 5px rgba(197,143,155,0.35);
  border-radius: 3px;
}
a{text-decoration:none;color:inherit;}
ul{list-style:none;}
img{max-width:100%;display:block;}
.container{max-width:1140px;margin:0 auto;padding:0 32px;}

/* Header */
header{position:sticky;top:0;z-index:100;background:rgba(250,247,242,0.95);backdrop-filter:blur(10px);border-bottom:1px solid rgba(63,58,54,0.08);}
.nav-wrap{display:flex;align-items:center;justify-content:space-between;padding:16px 32px;max-width:1140px;margin:0 auto;gap:16px;}
.logo{font-family:var(--serif);font-weight:600;font-size:1.4rem;display:flex;align-items:center;gap:12px;}
.logo img{height:44px;width:44px;border-radius:50%;object-fit:cover;background:#fff;border:1px solid rgba(63,58,54,0.1);padding:4px;}
nav ul{display:flex;gap:26px;flex-wrap:wrap;}
nav a{font-size:0.76rem;font-weight:500;letter-spacing:0.8px;text-transform:uppercase;position:relative;padding-bottom:4px;white-space:nowrap;}
nav a::after{content:'';position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--rose-deep);transition:width .3s ease;}
nav a:hover::after, nav a.active::after{width:100%;}
nav a.active{color:var(--rose-deep);}
.nav-toggle{display:none;background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--charcoal);padding:10px;line-height:1;}
@media (max-width:960px){
  nav ul{position:fixed;top:60px;left:0;right:0;background:var(--ivory);flex-direction:column;align-items:center;gap:0;max-height:0;overflow:hidden;transition:max-height .35s ease;border-bottom:1px solid rgba(63,58,54,0.08);}
  nav ul.open{max-height:520px;overflow-y:auto;}
  nav ul li{width:100%;text-align:center;}
  nav ul a{display:block;padding:14px 0;}
  .nav-toggle{display:block;order:99;margin-left:auto;}
}

/* Page header banner (all inner pages) */
.page-banner{
  padding:74px 0 48px;
  text-align:center;
  background:
    radial-gradient(circle at 85% 10%, rgba(168,184,165,0.22), transparent 45%),
    radial-gradient(circle at 10% 90%, rgba(216,167,177,0.18), transparent 45%),
    var(--ivory);
  position:relative;
  overflow:hidden;
}
.page-banner .eyebrow{font-size:0.75rem;letter-spacing:2.5px;text-transform:uppercase;font-weight:600;color:var(--sage);}
.page-banner h1{font-family:var(--serif);font-weight:600;font-size:clamp(2.2rem,4.5vw,3.2rem);margin-top:10px;}
.page-banner p{max-width:600px;margin:14px auto 0;color:#5b5551;}

section{padding:70px 0;}
h2{font-family:var(--serif);font-weight:600;font-size:clamp(1.8rem,3.2vw,2.5rem);}
.section-eyebrow{font-size:0.75rem;letter-spacing:2.5px;text-transform:uppercase;font-weight:600;color:var(--sage);display:block;margin-bottom:12px;}
.section-head{max-width:640px;margin-bottom:44px;}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center;}
.lead-text{color:#5b5551;margin-top:14px;}

/* Buttons */
.btn{display:inline-block;padding:14px 30px;border-radius:999px;font-size:0.8rem;font-weight:600;letter-spacing:0.6px;text-transform:uppercase;transition:transform .25s ease,box-shadow .25s ease,background .25s ease,color .25s ease;}
.btn-primary{background:var(--charcoal);color:var(--ivory);border:none;cursor:pointer;}
.btn:disabled{opacity:0.45;cursor:not-allowed;}
.btn:disabled:hover{transform:none;}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(63,58,54,0.2);}
.btn-outline{border:1px solid var(--charcoal);background:transparent;}
.btn-outline:hover{background:var(--charcoal);color:var(--ivory);}

/* Card-based nav grid (Home) */
.nav-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.nav-card{background:#fff;border:1px solid rgba(63,58,54,0.08);border-radius:4px 30px 4px 30px;padding:30px 24px;transition:transform .3s ease,box-shadow .3s ease;}
.nav-card:hover{transform:translateY(-4px);box-shadow:0 16px 30px rgba(63,58,54,0.1);}
.nav-card .num{font-family:var(--serif);color:var(--rose-deep);font-weight:600;font-size:0.85rem;}
.nav-card h3{font-family:var(--serif);font-size:1.3rem;font-weight:600;margin:10px 0 8px;}
.nav-card p{font-size:0.86rem;color:#6b6560;}
@media (max-width:900px){.nav-cards{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.nav-cards{grid-template-columns:1fr;}}

/* Generic content card grid */
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
@media (max-width:900px){.card-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:600px){.card-grid{grid-template-columns:1fr;}}
.info-card{background:#fff;border:1px solid rgba(63,58,54,0.08);border-radius:4px 30px 4px 30px;padding:28px;}
.info-card h3{font-family:var(--serif);font-size:1.3rem;font-weight:600;margin-bottom:10px;}
.info-card p{font-size:0.92rem;color:#6b6560;}

/* Category blocks (Services page) */
.category-block{margin-bottom:56px;}
.category-head{display:flex;align-items:baseline;gap:14px;border-bottom:1px solid rgba(63,58,54,0.12);padding-bottom:14px;margin-bottom:20px;}
.category-head h2{font-size:1.7rem;}
.category-head .count{font-size:0.78rem;color:var(--sage);font-weight:600;text-transform:uppercase;letter-spacing:1px;}

/* FAQ accordion */
.faq-item{border-bottom:1px solid rgba(63,58,54,0.12);}
.faq-item summary{cursor:pointer;list-style:none;padding:20px 4px;font-family:var(--serif);font-size:1.15rem;font-weight:600;display:flex;justify-content:space-between;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary .chevron{color:var(--sage);transition:transform .3s ease;}
.faq-item[open] summary .chevron{transform:rotate(180deg);}
.faq-item .faq-answer{padding:0 4px 20px;color:#5b5551;}

/* Footer */
footer{background:var(--charcoal);color:rgba(250,247,242,0.65);padding:40px 0;text-align:center;font-size:0.85rem;}
footer .foot-logo{font-family:var(--serif);font-style:italic;color:var(--ivory);font-size:1.05rem;margin-bottom:8px;}
footer .foot-logo img{height:52px;width:52px;border-radius:50%;object-fit:cover;background:rgba(250,247,242,0.08);padding:6px;margin:0 auto 10px;display:block;}
footer nav{margin:16px 0;}
footer nav ul{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;}
footer nav a{font-size:0.76rem;text-transform:uppercase;letter-spacing:0.5px;color:rgba(250,247,242,0.75);}
footer nav a:hover{color:var(--rose);}

.reveal{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease;}
.reveal.in-view{opacity:1;transform:translateY(0);}

.badge-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px;}
.badge{background:rgba(168,184,165,0.18);color:var(--charcoal);font-size:0.74rem;padding:6px 14px;border-radius:999px;font-weight:500;}

/* Simple checklist (used in contact + FAQ) */
.simple-checklist{list-style:none;padding:0;margin-top:14px;}
.simple-checklist li{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-bottom:1px solid rgba(63,58,54,0.08);font-size:0.94rem;color:#5b5551;}
.simple-checklist li::before{content:'✓';color:var(--sage);font-weight:700;}

/* Continue-exploring strip (bottom of content pages) */
.continue-strip{background:rgba(216,167,177,0.1);border-radius:6px;padding:36px;text-align:center;margin-top:48px;}
.continue-strip p{font-family:var(--serif);font-size:1.3rem;font-style:italic;margin-bottom:16px;}

/* Contact info list */
.contact-info-list{list-style:none;padding:0;}
.contact-info-list li{padding:10px 0;border-bottom:1px solid rgba(63,58,54,0.08);font-size:0.95rem;}
.contact-info-list .c-label{color:var(--sage);font-weight:600;font-size:0.72rem;letter-spacing:1px;text-transform:uppercase;display:block;margin-bottom:2px;}
.contact-info-list a.c-link{display:inline-flex;align-items:center;gap:8px;color:var(--charcoal);text-decoration:none;transition:color .2s ease;}
.contact-info-list a.c-link:hover{color:var(--rose-deep);}
.contact-info-list .c-icon{flex-shrink:0;color:var(--rose-deep);}

/* Interactive service cards (Services page) */
.svc-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:0;}
@media (max-width:900px){.svc-row{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.svc-row{grid-template-columns:1fr;}}
.svc-card{background:#fff;border:1px solid rgba(63,58,54,0.1);border-radius:4px 24px 4px 24px;overflow:hidden;cursor:pointer;text-align:left;font-family:inherit;transition:box-shadow .25s ease,border-color .25s ease;padding:0;}
.svc-card img{width:100%;aspect-ratio:4/3;object-fit:cover;}
.svc-card .svc-card-body{padding:16px 18px 20px;}
.svc-card h3{font-family:var(--serif);font-size:1.1rem;font-weight:600;margin-bottom:4px;}
.svc-card .svc-price{font-size:0.76rem;color:var(--rose-deep);font-weight:600;text-transform:uppercase;letter-spacing:0.4px;}
.svc-card .svc-learn{font-size:0.78rem;color:var(--sage);margin-top:8px;font-weight:600;}
.svc-card:hover{box-shadow:0 12px 24px rgba(63,58,54,0.1);}
.svc-card.active{border-color:var(--rose-deep);box-shadow:0 12px 24px rgba(216,167,177,0.25);}

.svc-detail-panel{display:none;background:rgba(216,167,177,0.08);border-radius:6px;padding:32px;margin:20px 0 44px;}
.svc-detail-panel.open{display:grid;grid-template-columns:1fr 1.3fr;gap:32px;}
@media (max-width:760px){.svc-detail-panel.open{grid-template-columns:1fr;padding:22px;}}
.svc-row > .svc-detail-panel{grid-column:1 / -1;}
.svc-detail-panel img{width:100%;border-radius:4px 30px 4px 30px;aspect-ratio:4/3;object-fit:cover;}
.svc-detail-panel h3{font-family:var(--serif);font-size:1.6rem;font-weight:600;margin-bottom:10px;}
.svc-detail-panel .d-field{margin-bottom:14px;}
.svc-detail-panel .d-label{font-size:0.72rem;letter-spacing:1.5px;text-transform:uppercase;font-weight:600;color:var(--sage);display:block;margin-bottom:4px;}
.svc-detail-panel .d-value{font-size:0.92rem;color:#5b5551;}

/* Package configurator */
.pkg-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px;}
.pkg-tab{background:#fff;border:1.5px solid rgba(63,58,54,0.15);border-radius:999px;padding:9px 20px;font-size:0.82rem;font-weight:600;color:var(--charcoal);cursor:pointer;transition:all .25s ease;}
.pkg-tab:hover{border-color:var(--rose-deep);}
.pkg-tab.active{background:var(--charcoal);border-color:var(--charcoal);color:var(--ivory);}
.variant-groups{margin-top:16px;}
.variant-axis{margin-bottom:16px;}
.variant-axis:last-child{margin-bottom:0;}
.variant-axis-label{font-size:0.75rem;font-weight:700;letter-spacing:0.04em;text-transform:uppercase;color:#8a8580;margin-bottom:8px;}
.variant-pill-row{margin-top:0;}
.variant-pill-row .pkg-tab{padding:7px 16px;font-size:0.78rem;}
.pkg-includes{list-style:none;padding:0;margin-top:10px;}
.pkg-includes li{display:flex;gap:10px;align-items:flex-start;padding:7px 0;font-size:0.92rem;color:#5b5551;}
.pkg-includes li::before{content:'✓';color:var(--sage);font-weight:700;}
.pkg-price{font-family:var(--serif);font-size:1.7rem;font-weight:600;color:var(--rose-deep);margin:6px 0 4px;}
.pkg-price.unavailable{font-family:var(--sans);font-size:0.95rem;font-weight:600;color:#8a8580;}
.pkg-btn-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:20px;}

/* Quantity stepper (used both in expanded panel and quote drawer) */
.qty-stepper{display:inline-flex;align-items:center;gap:10px;border:1px solid rgba(63,58,54,0.2);border-radius:999px;padding:4px 6px;margin:14px 0;}
.qty-stepper button{background:#fff;border:none;width:28px;height:28px;border-radius:50%;cursor:pointer;font-size:0.95rem;color:var(--charcoal);}
.qty-stepper input{width:44px;border:none;text-align:center;font-size:0.88rem;background:transparent;-moz-appearance:textfield;}
.qty-stepper input::-webkit-outer-spin-button,.qty-stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}

/* Inquiry form */
.inquiry-form{display:grid;gap:16px;}
.inquiry-form label{font-size:0.76rem;letter-spacing:1px;text-transform:uppercase;font-weight:600;color:var(--sage);display:block;margin-bottom:6px;}
.inquiry-form input, .inquiry-form textarea, .inquiry-form select{width:100%;padding:13px 16px;border:1px solid rgba(63,58,54,0.2);border-radius:8px;background:#fff;font-family:var(--sans);font-size:0.94rem;color:var(--charcoal);}

/* Services multi-select (grouped checkbox dropdown) */
.svc-ms{position:relative;}
.svc-ms-trigger{
  width:100%;padding:13px 16px;border:1px solid rgba(63,58,54,0.2);border-radius:8px;background:#fff;
  font-family:var(--sans);font-size:0.94rem;color:var(--charcoal);
  display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;text-align:left;
}
.svc-ms-summary{color:#8a8580;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.svc-ms.has-selection .svc-ms-summary{color:var(--charcoal);}
.svc-ms-arrow{flex-shrink:0;transition:transform .2s ease;color:#8a8580;}
.svc-ms.open .svc-ms-arrow{transform:rotate(180deg);}
.svc-ms-panel{
  display:none;position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:20;
  background:#fff;border:1px solid rgba(63,58,54,0.15);border-radius:10px;
  box-shadow:0 16px 34px rgba(63,58,54,0.15);
  max-height:340px;overflow-y:auto;padding:10px 0;
}
.svc-ms.open .svc-ms-panel{display:block;}
.svc-ms-group{padding:8px 18px;}
.svc-ms-group + .svc-ms-group{border-top:1px solid rgba(63,58,54,0.08);}
.svc-ms-group-label{font-size:0.72rem;font-weight:700;letter-spacing:0.05em;text-transform:uppercase;color:var(--rose-deep);margin-bottom:6px;}
.svc-ms-option{display:flex;align-items:center;gap:10px;padding:6px 2px;font-size:0.88rem;color:var(--charcoal);cursor:pointer;}
.svc-ms-option input{width:auto;padding:0;accent-color:var(--rose-deep);cursor:pointer;}
.svc-ms-other-input{margin-top:6px;font-size:0.85rem;padding:9px 12px;}
.inquiry-form textarea{min-height:90px;resize:vertical;}
.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media (max-width:640px){.form-row-2{grid-template-columns:1fr;}}
.btn-facebook{display:inline-flex;align-items:center;gap:10px;background:#1877F2;color:#fff;padding:14px 30px;border-radius:999px;font-size:0.85rem;font-weight:600;letter-spacing:0.5px;text-transform:uppercase;}
.btn-facebook:hover{background:#145dbf;}

/* File upload field */
.file-upload{border:1.5px dashed rgba(63,58,54,0.25);border-radius:8px;padding:16px;background:rgba(250,247,242,0.6);font-size:0.85rem;color:#6b6560;}

/* ===================================================================
   QUOTE BUILDER — single clean set of rules (V8.1 / V8.2)
=================================================================== */

/* Header + mobile buttons */
.quote-nav-btn{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--charcoal);color:var(--ivory);
  padding:9px 18px;border-radius:999px;border:none;cursor:pointer;
  font-size:0.76rem;font-weight:600;letter-spacing:0.4px;text-transform:uppercase;
  white-space:nowrap;
}
.quote-nav-btn:hover{background:#2c2825;}
.quote-fab{
  display:none;position:fixed;bottom:22px;right:22px;z-index:400;
  background:var(--charcoal);color:var(--ivory);border:none;border-radius:999px;
  padding:14px 20px;font-size:0.82rem;font-weight:600;cursor:pointer;
  box-shadow:0 10px 24px rgba(63,58,54,0.3);
  align-items:center;gap:8px;
}
@media (max-width:960px){
  .quote-nav-btn{display:none;}
  .quote-fab{display:inline-flex;}
}
.quote-badge{
  background:var(--rose-deep);color:#fff;border-radius:999px;
  min-width:19px;height:19px;font-size:0.7rem;font-weight:700;
  display:inline-flex;align-items:center;justify-content:center;padding:0 5px;
}

/* Toast confirmation */
.quote-toast{
  position:fixed;bottom:28px;left:50%;transform:translateX(-50%) translateY(20px);
  background:var(--charcoal);color:var(--ivory);padding:14px 26px;border-radius:999px;
  font-size:0.86rem;font-weight:500;z-index:1300;opacity:0;pointer-events:none;
  transition:opacity .3s ease,transform .3s ease;max-width:90vw;text-align:center;
  box-shadow:0 10px 30px rgba(63,58,54,0.3);
}
.quote-toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* Drawer */
.quote-drawer-overlay{display:none;position:fixed;inset:0;background:rgba(63,58,54,0.5);z-index:1200;}
.quote-drawer-overlay.open{display:block;}
.quote-drawer{
  position:fixed;top:0;right:0;bottom:0;width:min(420px,92vw);
  background:var(--ivory);z-index:1201;
  transform:translateX(100%);transition:transform .35s ease;
  display:flex;flex-direction:column;box-shadow:-14px 0 40px rgba(0,0,0,0.15);
}
.quote-drawer-overlay.open .quote-drawer{transform:translateX(0);}
.quote-drawer-head{padding:24px 24px 16px;border-bottom:1px solid rgba(63,58,54,0.1);display:flex;justify-content:space-between;align-items:center;}
.quote-drawer-head h3{font-family:var(--serif);font-size:1.3rem;font-weight:600;}
.quote-drawer-close{background:none;border:none;font-size:1.3rem;cursor:pointer;color:var(--charcoal);}
.quote-drawer-body{flex:1;overflow-y:auto;padding:20px 24px;}
.quote-empty{text-align:center;color:#8a8580;font-size:0.9rem;padding:40px 10px;}

.quote-line{display:grid;grid-template-columns:64px 1fr;gap:14px;padding:16px 0;border-bottom:1px solid rgba(63,58,54,0.08);}
.quote-line img{width:64px;height:64px;object-fit:cover;border-radius:4px 14px 4px 14px;}
.quote-line h4{font-family:var(--serif);font-size:1.05rem;font-weight:600;margin-bottom:2px;}
.quote-line .q-cat{font-size:0.7rem;color:var(--sage);text-transform:uppercase;letter-spacing:0.5px;font-weight:600;margin-bottom:6px;}
.quote-line select{font-size:0.82rem;padding:5px 8px;border-radius:6px;border:1px solid rgba(63,58,54,0.2);margin-bottom:6px;background:#fff;}
.quote-line .q-row{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;}
.quote-line .q-price{font-size:0.85rem;color:var(--rose-deep);font-weight:600;}
.quote-line .q-remove{font-size:0.74rem;color:#b0a9a4;text-decoration:underline;cursor:pointer;background:none;border:none;}
.quote-line .q-remove:hover{color:var(--rose-deep);}
.quote-line .qty-stepper{margin:6px 0 0;}

.quote-drawer-foot{padding:20px 24px 24px;border-top:1px solid rgba(63,58,54,0.1);}
.qd-total{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px;}
.qd-total-value{font-family:var(--serif);font-size:1.4rem;font-weight:600;color:var(--rose-deep);}
.qd-note{font-size:0.72rem;color:#8a8580;margin:6px 0 16px;}

/* Progress indicator */
.progress-steps{display:flex;justify-content:center;align-items:center;gap:0;flex-wrap:wrap;padding:18px 0 6px;}
.progress-step{display:flex;align-items:center;gap:8px;font-size:0.76rem;color:#a8a19b;font-weight:600;background:none;border:none;font-family:var(--sans);cursor:pointer;padding:4px 2px;border-radius:6px;transition:color .2s ease;}
.progress-step:hover:not(:disabled){color:var(--rose-deep);}
.progress-step:disabled{cursor:default;}
.progress-step .p-dot{
  width:20px;height:20px;border-radius:50%;background:#e4dfd9;color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:0.68rem;flex-shrink:0;
}
.progress-step.active{color:var(--rose-deep);}
.progress-step.active .p-dot{background:var(--rose-deep);}
.progress-step.done .p-dot{background:var(--sage);}
.progress-step.done{color:var(--sage);}
.progress-sep{width:26px;height:1px;background:#d8d2cc;margin:0 12px;}

/* Mobile: switch to a compact 2x2 grid so labels stay visible instead of being hidden */
@media (max-width:700px){
  .progress-steps{
    display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;
    max-width:340px;margin:0 auto;padding:18px 12px 6px;
  }
  .progress-step{font-size:0.72rem;gap:7px;}
  .progress-step .p-text{display:inline;line-height:1.25;}
  .progress-sep{display:none;}
}
@media (max-width:380px){
  .progress-steps{grid-template-columns:1fr 1fr;gap:8px 10px;max-width:300px;}
  .progress-step{font-size:0.68rem;}
  .progress-step .p-dot{width:18px;height:18px;font-size:0.62rem;}
}

/* Your Quote review (Let's Talk page) */
.quote-summary-box{background:rgba(216,167,177,0.1);border-radius:6px;padding:28px;margin-top:24px;}
.quote-total-line{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--serif);font-size:1.4rem;font-weight:600;color:var(--charcoal);margin-top:4px;}

/* Custom-inquiry note */
.custom-note{background:rgba(168,184,165,0.1);border:1px solid rgba(168,184,165,0.25);border-radius:6px;padding:18px 24px;font-size:0.9rem;color:#5b5551;text-align:center;margin-top:28px;}
.custom-note a{color:var(--rose-deep);font-weight:600;text-decoration:underline;}

.success-icon{
  width:64px;height:64px;border-radius:50%;
  object-fit:cover;background:#fff;
  border:1px solid rgba(63,58,54,0.1);
  padding:6px;margin:0 auto 18px;display:block;
}
.success-check{display:block;margin:0 auto 6px;}
.success-check-circle{
  stroke:var(--sage);stroke-width:2.5;
  stroke-dasharray:151;stroke-dashoffset:151;
  animation:success-circle-draw .5s ease-out forwards;
}
.success-check-mark{
  stroke:var(--sage);stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:32;stroke-dashoffset:32;
  animation:success-check-draw .35s ease-out .5s forwards;
}
@keyframes success-circle-draw{to{stroke-dashoffset:0;}}
@keyframes success-check-draw{to{stroke-dashoffset:0;}}
@media (prefers-reduced-motion:reduce){
  .success-check-circle,.success-check-mark{animation:none;stroke-dashoffset:0;}
}

/* ============ STORY COLLAGE (Event Gallery V11 — dense editorial mix) ============ */
.story-collage{
  display:grid;
  grid-template-columns:repeat(6, 1fr);
  grid-auto-rows:70px;
  grid-auto-flow:dense;
  gap:8px;
}
.story-tile{
  position:relative;overflow:hidden;border-radius:4px;cursor:zoom-in;
  grid-column:span 2; grid-row:span 3;
  background:linear-gradient(100deg, rgba(63,58,54,0.06) 30%, rgba(63,58,54,0.11) 50%, rgba(63,58,54,0.06) 70%);
  background-size:200% 100%;
  animation:story-shimmer 1.6s ease-in-out infinite;
}
.story-tile.img-ready{animation:none; background:none;}
.story-tile img{opacity:0;}
.story-tile img.loaded{opacity:1;}
@keyframes story-shimmer{0%{background-position:200% 0;}100%{background-position:-200% 0;}}
.story-tile.sq{grid-column:span 1; grid-row:span 3;}
.story-tile.port{grid-column:span 1; grid-row:span 4;}
.story-tile.land{grid-column:span 2; grid-row:span 3;}
.story-tile.std{grid-column:span 2; grid-row:span 4;}
.story-tile.banner{grid-column:span 3; grid-row:span 3;}
.story-tile img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .5s ease, opacity .4s ease;
}
.story-tile:hover img{transform:scale(1.045);}
.story-tile::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg, transparent 60%, rgba(63,58,54,0.18) 100%);
  opacity:0;transition:opacity .3s ease;pointer-events:none;
}
.story-tile:hover::after{opacity:1;}

@media (max-width:560px){
  .story-collage{grid-auto-rows:55px;gap:6px;}
  .story-tile.sq{grid-column:span 2; grid-row:span 2;}
  .story-tile.port{grid-column:span 2; grid-row:span 2;}
  .story-tile.land{grid-column:span 2; grid-row:span 2;}
  .story-tile.std{grid-column:span 2; grid-row:span 2;}
  .story-tile.banner{grid-column:span 6; grid-row:span 2;}
}

/* Premium lightbox for the story collage */
.story-lightbox{
  display:none;position:fixed;inset:0;z-index:1400;
  background:rgba(18,16,15,0.96);
  align-items:center;justify-content:center;
}
.story-lightbox.open{display:flex;}
.story-lightbox img{
  max-width:88vw;max-height:86vh;object-fit:contain;
  border-radius:2px;user-select:none;
}
.story-lightbox .lb-close{
  position:absolute;top:22px;right:26px;background:none;border:none;
  color:rgba(250,247,242,0.85);font-size:1.8rem;cursor:pointer;line-height:1;
  width:44px;height:44px;
}
.story-lightbox .lb-close:hover{color:#fff;}
.story-lightbox .lb-nav{
  position:absolute;top:50%;transform:translateY(-50%);
  background:rgba(250,247,242,0.1);border:none;color:rgba(250,247,242,0.85);
  width:52px;height:52px;border-radius:50%;font-size:1.6rem;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background .25s ease;
}
.story-lightbox .lb-nav:hover{background:rgba(250,247,242,0.2);color:#fff;}
.story-lightbox .lb-prev{left:20px;}
.story-lightbox .lb-next{right:20px;}
.story-lightbox .lb-counter{
  position:absolute;bottom:24px;left:50%;transform:translateX(-50%);
  color:rgba(250,247,242,0.6);font-size:0.78rem;letter-spacing:1px;
}
@media (max-width:600px){
  .story-lightbox .lb-nav{width:42px;height:42px;font-size:1.3rem;}
  .story-lightbox .lb-prev{left:8px;}
  .story-lightbox .lb-next{right:8px;}
  .story-lightbox .lb-close{top:12px;right:14px;}
}

/* ============ MOBILE LAYOUT FIXES (V9) ============ */
/* Any two-column grid using this class collapses to one column on mobile,
   even when an inline style sets a custom desktop column ratio. */
.split-2col{}
@media (max-width:760px){
  .split-2col{grid-template-columns:1fr !important; gap:28px !important;}
}
@media (max-width:600px){
  .qty-stepper button{width:36px;height:36px;}
  .qty-stepper input{width:44px;padding:4px 0;}
  .quote-line .q-remove{padding:6px 0;}
}

@media (max-width:600px){
  /* Tighter but still comfortable side padding on phones */
  .container{padding:0 20px;}

  /* Buttons: slightly smaller so CTA text reliably sits on one line */
  .btn{padding:13px 24px;font-size:0.76rem;letter-spacing:0.4px;}

  /* Prevent the floating quote button from covering the last bit of content */
  body{padding-bottom:76px;}
  .quote-fab{bottom:18px;right:18px;padding:12px 18px;font-size:0.8rem;}

  /* Nav-card and info-card padding a touch tighter on small screens */
  .nav-card{padding:24px 20px;}
  .info-card{padding:22px;}

  /* Page banner: less top padding so content feels closer at hand */
  .page-banner{padding:56px 0 36px;}

  /* Section rhythm: reduce generous desktop spacing for a tighter mobile flow */
  section{padding:48px 0;}
}

/* Visually hidden but accessible to screen readers / SEO heading structure */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
