:root{--page-max:1380px;--page-gutter:clamp(1.25rem,4vw,3rem)}
.page-main{padding-top:5rem;background:#f7f3eb;color:#1d1a17}
.page-container{width:min(var(--page-max),calc(100% - 2*var(--page-gutter)));margin-inline:auto}
.breadcrumbs{display:flex;flex-wrap:wrap;gap:.55rem;align-items:center;font-size:.72rem;line-height:1.5;text-transform:uppercase;letter-spacing:.15em;color:rgba(29,26,23,.58)}
.breadcrumbs a:hover{color:#735334}
.page-hero{position:relative;min-height:640px;display:flex;align-items:flex-end;overflow:hidden;background:#29231e;color:#fff}
.page-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.page-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,17,14,.83),rgba(20,17,14,.46) 52%,rgba(20,17,14,.12)),linear-gradient(0deg,rgba(20,17,14,.55),transparent 62%)}
.page-hero-content{position:relative;z-index:1;width:min(var(--page-max),calc(100% - 2*var(--page-gutter)));margin-inline:auto;padding:9rem 0 5.5rem}
.page-hero .breadcrumbs{color:rgba(255,255,255,.68);text-shadow:0 1px 8px rgba(0,0,0,.4)}
.page-eyebrow{display:flex;align-items:center;gap:.8rem;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.26em;color:#e4c79c;margin-top:1.75rem;text-shadow:0 1px 10px rgba(0,0,0,.45)}
.page-eyebrow::before{content:"";width:2.8rem;height:1px;background:currentColor;opacity:.75}
.page-title{max-width:950px;margin-top:1.2rem;font-family:"Cormorant Garamond",Georgia,serif;font-size:clamp(3.35rem,8vw,7.6rem);font-weight:500;line-height:.9;letter-spacing:-.04em}
.page-lead{max-width:720px;margin-top:1.7rem;font-size:clamp(1rem,1.8vw,1.2rem);line-height:1.85;color:rgba(255,255,255,.78)}
.page-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2.1rem}
.btn-primary,.btn-secondary,.btn-dark{display:inline-flex;align-items:center;justify-content:center;gap:.75rem;border-radius:999px;padding:.95rem 1.45rem;font-size:.84rem;font-weight:700;transition:.3s ease}
.btn-primary{background:#fff;color:#1d1a17}.btn-primary:hover{background:#eadcc9}.btn-secondary{border:1px solid rgba(255,255,255,.55);color:#fff;background:rgba(0,0,0,.12)}.btn-secondary:hover{background:rgba(255,255,255,.12)}.btn-dark{background:#1d1a17;color:#fff}.btn-dark:hover{background:#735334}
.trust-row{background:#fffdf9;border-bottom:1px solid rgba(29,26,23,.1)}
.trust-row-inner{display:grid;grid-template-columns:repeat(4,1fr);width:min(var(--page-max),calc(100% - 2*var(--page-gutter)));margin:auto}
.trust-item{padding:1.25rem 1.5rem;border-right:1px solid rgba(29,26,23,.1)}.trust-item:last-child{border-right:0}.trust-item strong{display:block;font-family:"Cormorant Garamond",Georgia,serif;font-size:1.35rem;font-weight:600}.trust-item span{display:block;margin-top:.15rem;font-size:.72rem;line-height:1.5;color:rgba(29,26,23,.58)}
.page-section{padding:clamp(4.5rem,9vw,8rem) 0}.page-section.white{background:#fffdf9}.page-section.dark{background:#29231e;color:#fff}.page-section.sand{background:#d8c9b6}.page-section.linen{background:#eee7dc}
.section-grid{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);gap:clamp(2.5rem,7vw,7rem);align-items:start}
.section-kicker{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.25em;color:#735334}
.dark .section-kicker{color:#d4b28b}
.section-title{margin-top:1rem;font-family:"Cormorant Garamond",Georgia,serif;font-size:clamp(2.9rem,5.6vw,5.7rem);font-weight:500;line-height:.94;letter-spacing:-.035em}
.section-copy{font-size:1rem;line-height:1.9;color:rgba(29,26,23,.66)}.dark .section-copy{color:rgba(255,255,255,.66)}.section-copy p+p{margin-top:1.2rem}.section-copy h2,.section-copy h3{font-family:"Cormorant Garamond",Georgia,serif;color:#1d1a17}.dark .section-copy h2,.dark .section-copy h3{color:#fff}.section-copy h3{margin-top:2rem;font-size:2rem;line-height:1.05}.section-copy ul{margin-top:1.25rem;display:grid;gap:.8rem}.section-copy li{position:relative;padding-left:1.25rem}.section-copy li::before{content:"";position:absolute;left:0;top:.75rem;width:.38rem;height:.38rem;border-radius:50%;background:#9b744c}
.media-split{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;min-height:620px}.media-split-image{position:relative;min-height:520px;overflow:hidden}.media-split-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.media-split-content{display:flex;align-items:center;padding:clamp(3rem,7vw,7rem);background:#f1ebe2}.media-split-content.dark-panel{background:#29231e;color:#fff}
.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.15rem;margin-top:3rem}.lux-card{display:flex;flex-direction:column;min-height:100%;background:#fffdf9;border:1px solid rgba(29,26,23,.09);box-shadow:0 18px 60px rgba(31,25,20,.08);transition:.45s cubic-bezier(.22,1,.36,1);overflow:hidden}.lux-card:hover{transform:translateY(-5px);box-shadow:0 28px 80px rgba(31,25,20,.14)}.lux-card-image{aspect-ratio:4/3;overflow:hidden;background:#d8c9b6}.lux-card-image img{width:100%;height:100%;object-fit:cover;transition:1s cubic-bezier(.22,1,.36,1)}.lux-card:hover img{transform:scale(1.04)}.lux-card-body{display:flex;flex-direction:column;flex:1;padding:1.7rem}.lux-card-label{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.2em;color:#735334}.lux-card-title{margin-top:.65rem;font-family:"Cormorant Garamond",Georgia,serif;font-size:2.35rem;line-height:.98}.lux-card-text{margin-top:1rem;font-size:.88rem;line-height:1.75;color:rgba(29,26,23,.63)}.lux-card-link{margin-top:auto;padding-top:1.5rem;font-size:.82rem;font-weight:700}
.feature-lines{margin-top:2.2rem;border-top:1px solid rgba(29,26,23,.15)}.feature-line{display:grid;grid-template-columns:3rem 1fr;gap:1rem;padding:1.35rem 0;border-bottom:1px solid rgba(29,26,23,.15)}.feature-line .num{font-family:"Cormorant Garamond",Georgia,serif;font-size:1.8rem;color:#9b744c}.feature-line h3{font-size:1rem;font-weight:700}.feature-line p{margin-top:.35rem;font-size:.87rem;line-height:1.7;color:rgba(29,26,23,.61)}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid rgba(255,255,255,.15);margin-top:3rem}.stat{padding:1.8rem;border-right:1px solid rgba(255,255,255,.15)}.stat:last-child{border-right:0}.stat strong{display:block;font-family:"Cormorant Garamond",Georgia,serif;font-size:2rem;font-weight:500}.stat span{display:block;margin-top:.3rem;font-size:.72rem;line-height:1.5;color:rgba(255,255,255,.55)}
.city-links{display:grid;grid-template-columns:repeat(2,1fr);margin-top:2.5rem;border-top:1px solid rgba(29,26,23,.16)}.city-link{padding:1.5rem 1rem;border-bottom:1px solid rgba(29,26,23,.16)}.city-link:nth-child(odd){border-right:1px solid rgba(29,26,23,.16)}.city-link strong{display:block;font-family:"Cormorant Garamond",Georgia,serif;font-size:2rem}.city-link span{display:block;margin-top:.4rem;font-size:.82rem;line-height:1.65;color:rgba(29,26,23,.6)}
.gallery-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1.1rem;margin-top:3rem}.gallery-card{position:relative;grid-column:span 4;overflow:hidden;background:#d8c9b6;min-height:440px}.gallery-card.wide{grid-column:span 8}.gallery-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:1s cubic-bezier(.22,1,.36,1)}.gallery-card:hover img{transform:scale(1.04)}.gallery-card::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.72),transparent 62%)}.gallery-caption{position:absolute;z-index:1;left:0;right:0;bottom:0;padding:1.5rem;color:#fff}.gallery-caption small{font-size:.63rem;font-weight:700;text-transform:uppercase;letter-spacing:.2em;color:rgba(255,255,255,.65)}.gallery-caption h3{margin-top:.35rem;font-family:"Cormorant Garamond",Georgia,serif;font-size:2.1rem;line-height:1}
.faq-list{margin-top:2.5rem;border-top:1px solid rgba(29,26,23,.16)}.faq-list details{border-bottom:1px solid rgba(29,26,23,.16);padding:1.25rem 0}.faq-list summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:1rem;font-family:"Cormorant Garamond",Georgia,serif;font-size:1.6rem;font-weight:600}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary::after{content:"+";font-family:"Manrope",sans-serif;font-size:1.25rem;color:#735334}.faq-list details[open] summary::after{content:"–"}.faq-answer{max-width:800px;padding-top:1rem;font-size:.92rem;line-height:1.8;color:rgba(29,26,23,.64)}
.cta-band{position:relative;overflow:hidden;padding:clamp(4rem,8vw,7rem) 0;background:#bda68b}.cta-band::after{content:"";position:absolute;right:-10%;top:-80%;width:55%;height:240%;background:radial-gradient(circle,rgba(255,255,255,.32),transparent 62%)}.cta-inner{position:relative;z-index:1;display:flex;align-items:end;justify-content:space-between;gap:2rem}.cta-title{max-width:850px;font-family:"Cormorant Garamond",Georgia,serif;font-size:clamp(3rem,6vw,6rem);line-height:.92;letter-spacing:-.035em}
.contact-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2.5rem,7vw,7rem);align-items:start}.contact-info-card{background:#29231e;color:#fff;padding:clamp(2rem,5vw,4.5rem)}.contact-info-card h2{font-family:"Cormorant Garamond",Georgia,serif;font-size:3.2rem;line-height:.95}.contact-list{margin-top:2.3rem;display:grid;gap:1.25rem}.contact-list dt{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.2em;color:#d4b28b}.contact-list dd{margin-top:.35rem;font-size:.95rem;line-height:1.65;color:rgba(255,255,255,.75)}
.form-panel{background:#f1ebe2;padding:clamp(2rem,5vw,4.5rem)}
.notice{padding:1rem 1.2rem;border:1px solid rgba(115,83,52,.25);background:#fffdf9;font-size:.85rem;line-height:1.65;color:rgba(29,26,23,.68)}
@media(max-width:980px){.trust-row-inner{grid-template-columns:repeat(2,1fr)}.trust-item:nth-child(2){border-right:0}.trust-item:nth-child(-n+2){border-bottom:1px solid rgba(29,26,23,.1)}.section-grid,.media-split,.contact-layout{grid-template-columns:1fr}.media-split-image{min-height:500px}.card-grid{grid-template-columns:repeat(2,1fr)}.stat-grid{grid-template-columns:repeat(2,1fr)}.stat:nth-child(2){border-right:0}.stat:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.15)}.gallery-card,.gallery-card.wide{grid-column:span 6}.cta-inner{align-items:flex-start;flex-direction:column}}
@media(max-width:640px){.page-hero{min-height:600px}.page-hero-content{padding-top:8rem;padding-bottom:3.5rem}.page-title{font-size:3.6rem}.page-actions{flex-direction:column;align-items:stretch}.trust-row-inner{grid-template-columns:1fr}.trust-item,.trust-item:nth-child(2){border-right:0;border-bottom:1px solid rgba(29,26,23,.1)}.trust-item:last-child{border-bottom:0}.card-grid{grid-template-columns:1fr}.city-links{grid-template-columns:1fr}.city-link:nth-child(odd){border-right:0}.gallery-card,.gallery-card.wide{grid-column:span 12;min-height:420px}.stat-grid{grid-template-columns:1fr}.stat,.stat:nth-child(2){border-right:0;border-bottom:1px solid rgba(255,255,255,.15)}.stat:last-child{border-bottom:0}.media-split-image{min-height:420px}.media-split-content{padding:3rem 1.25rem}.cta-title{font-size:3.4rem}}
.page-hero .consultation-lead {
  color: #ffffff !important;
  font-weight: 700;
}


/* Text sitting on the khaki (#bda68b) "Local service" background needs
   more opacity than the same tokens use elsewhere (white/cream) to meet
   WCAG AA contrast — those backgrounds are much lighter than this one. */
.areas-kicker,.areas-card-label{color:rgba(29,26,23,.88)}
.areas-lead,.areas-card-text{color:rgba(29,26,23,.82)}

/* Offset for the fixed header so smooth-scrolling to any of these
   anchors doesn't land the target partly hidden underneath it. */
#consultation-form,#collections,#process,#contact{scroll-margin-top:6.5rem}

/* Homepage hero video — a mobile-specific crop (not just a scaled-down
   desktop frame) so the ultra-wide source footage doesn't need an
   extreme zoom to cover a tall, narrow phone screen. A static fallback
   image is shown only when the visitor's device has "reduce motion"
   turned on. */
.hero-media{position:absolute;inset:0}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;display:none}
.hero-video-mobile{display:block}
.hero-video-fallback{position:absolute;inset:0;display:none}
@media (min-width:48rem){
  .hero-video-desktop{display:block}
  .hero-video-mobile{display:none}
}
@media (max-width:47.999rem){
  #top{min-height:640px}
}
@media (prefers-reduced-motion:reduce){
  .hero-video{display:none!important}
  .hero-video-fallback{display:block!important}
}
