/* Homepage art direction: warm editorial photography, quiet surfaces, one type system. */
.home-page {
  --font-display:'Cormorant Garamond','Iowan Old Style',Georgia,serif;
  --font-body:Manrope,Arial,sans-serif;
  --olive:#343b30;
  --gold-dark:#846536;
  --font-size-h2:clamp(2.625rem,4.1vw,3.875rem);
  --font-size-eyebrow:.75rem;
  --section-padding-block:clamp(56px,5vw,76px);
  font-family:var(--font-body);
  font-size:1rem;
  line-height:1.65;
}
.home-page :is(h1,h2,h3) { font-family:var(--font-display); font-weight:500; letter-spacing:-.035em; }
.home-page h2 { font-size:var(--font-size-h2); line-height:1.03; }
.home-page .eyebrow { color:var(--gold-dark); letter-spacing:.15em; }
.home-page :is(a,button,summary):focus-visible { outline:2px solid var(--gold-dark); outline-offset:5px; }
.home-page :is(section[id],#collection-grid) { scroll-margin-top:100px; }
/* Every main content section shares the same top and bottom spacing. */
.home-page .section { padding-block:var(--section-padding-block); }
.home-page :is(.button,.product-cta) {
  width:auto;
  min-width:0;
  min-height:54px;
  padding:16px 24px;
  gap:14px;
  font:700 .875rem/1.3 var(--font-body);
  letter-spacing:.015em;
  text-transform:none;
  border-radius:var(--radius-button);
}
.home-page .button-dark { background:var(--gold-dark); color:#fffdf9; }
.home-page .button-dark:hover { background:#70532b; }
.home-page :is(.text-link,.collection-link) { font:600 .875rem/1.5 var(--font-body); letter-spacing:.015em; text-transform:none; }
.home-page .site-header { font-family:Arial,Helvetica,sans-serif; font-size:18px; line-height:normal; }

/* One complete viewport, including the fixed header. Art-directed crops protect faces and the gift. */
.home-page .hero { height:100svh; min-height:0; background:#eee5d8; }
.home-page .hero-image { inset:0; background:none; }
.home-page .hero-image picture { display:block; width:100%; height:100%; }
.home-page .hero-image img { width:100%; height:100%; object-fit:cover; object-position:75% center; }
.home-page .hero-wash { background:linear-gradient(90deg,rgba(246,239,228,.38),rgba(246,239,228,0) 49%); pointer-events:none; }
.home-page .hero-content { width:min(540px,38vw); margin-left:clamp(32px,6vw,100px); padding:130px 0 60px; }
.home-page .hero h1 { font-size:clamp(3.75rem,5.3vw,5.5rem); line-height:.98; }
.home-page .hero .eyebrow { font-size:.75rem; margin-bottom:22px; }
.home-page .hero-copy { max-width:430px; margin-top:26px; color:#544b40; font-size:1rem; line-height:1.75; }
.home-page .hero-actions { flex-wrap:wrap; gap:20px 26px; margin-top:32px; }
.home-page .hero-actions .button { width:auto; }
.home-page .hero-actions .text-link { font-size:.875rem; }
.home-page .promise-item { font-size:clamp(1.375rem,1.8vw,1.75rem); }

/* Consistent editorial headings and calm, aligned product information. */
@media(prefers-reduced-motion:no-preference) {
  .home-page .is-reveal-pending { opacity:0; transform:translateY(12px); }
  .home-page .is-reveal-entering { animation:home-intro-reveal 1000ms cubic-bezier(.22,.61,.36,1) both; }
  .home-page .hero-content.reveal { animation-duration:1000ms; }
}
@keyframes home-intro-reveal {
  from { opacity:0; transform:translateY(12px); }
  to { opacity:1; transform:none; }
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .home-page .testimonial-photo { transition:transform 650ms cubic-bezier(.22,.61,.36,1); }
  .home-page .testimonial-slide:hover .testimonial-photo { transform:scale(1.035); }
  .home-page .process-visual .process-image { transition:opacity 360ms ease,transform 650ms cubic-bezier(.22,.61,.36,1); }
  .home-page .process-visual:hover .process-image.is-active { transform:scale(1.035); }
  .home-page .process .process-step-panel .process-image { transition:filter 400ms ease; }
  .home-page .process-step-panel .process-image:hover { filter:brightness(1.035); }
}
@media print {
  .home-page .is-reveal-pending,.home-page .is-reveal-entering { opacity:1; transform:none; animation:none; }
}
.home-page .about { grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr); }
.home-page .about-copy .lead { font-size:1rem; line-height:1.8; }
.home-page .about-copy .lead + .lead { margin-top:18px; }
.home-page .collection-intro { max-width:430px; font-size:1rem; }
.home-page .product-card { padding:clamp(14px,1.4vw,20px); }
.home-page .product-heading { flex-wrap:wrap; justify-content:flex-start; column-gap:14px; row-gap:10px; }
.home-page .product-heading h3 { flex:1 1 100%; font-size:clamp(1.75rem,2.35vw,2.25rem); line-height:1.08; }
.home-page .price { font:500 1.5rem/1 var(--font-display); color:#6f5632; }
.home-page .price sup { font-family:var(--font-body); font-size:.75rem; }
.home-page .product-meta p { margin-top:14px; font-size:1rem; }
.home-page .product-cta { width:100%; margin-top:24px; }
.home-page .product-tag { font:600 .75rem/1.4 var(--font-body); letter-spacing:.02em; text-transform:none; }
.home-page .collection-reassurance { margin-top:28px; padding-top:20px; font-size:.75rem; letter-spacing:.055em; }
.home-page .collection-professionals { max-width:none; margin:12px 0 0; line-height:1.3; text-wrap:normal; }
.home-page .process-layout { grid-template-columns:minmax(0,1fr) minmax(0,.95fr); column-gap:clamp(40px,6vw,90px); }
.home-page .process-intro h2 { font-size:var(--font-size-h2); line-height:1.03; }
.home-page .process-summary,.home-page .process-step-description { font-size:1rem; }
.home-page .process-step .step-number { font-size:.75rem; }
.home-page .process-step-title { font-size:1.875rem; }
.home-page .process-visual { align-self:center; min-height:0; aspect-ratio:3/4; }
.home-page .process-actions .button { min-width:0; min-height:54px; }
.home-page .process-step.is-active .process-step-title,.home-page .process-step:hover .process-step-title { transform:none; }
.home-page .process-step-heading { margin:0; }
.home-page .process-step-panel { padding-left:86px; }
.home-page .process-step-panel[hidden] { display:none; }
.home-page .process-step-description { margin:8px 0 0; }
.home-page .process-toggle { display:none; }
.home-page .process-step-button:disabled { cursor:default; color:inherit; opacity:1; }
/* The unenhanced document is a readable sequence with all four photos. */
.home-page .process:not(.is-enhanced) .process-layout { grid-template-columns:1fr; grid-template-areas:'intro' 'timeline' 'actions'; }
.home-page .process:not(.is-enhanced) .process-visual { display:none; }
.home-page .process-step-panel .process-image {
  position:relative;
  inset:auto;
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:4/5;
  margin-top:20px;
  border:1px solid rgba(169,133,73,.22);
  border-radius:var(--radius-image);
  background:#e8d9c9;
  opacity:1;
  transform:none;
  transition:none;
}
/* A tighter desktop rhythm keeps the four-step overview easy to scan. */
@media(min-width:821px) {
  .home-page .process-layout { row-gap:24px; }
  .home-page .process-intro .eyebrow { margin-bottom:16px; }
  .home-page .process-summary { margin-top:20px; }
  .home-page .process-timeline { margin-top:0; }
  .home-page .process-step:not(:last-child) { padding-bottom:16px; margin-bottom:16px; }
  .home-page .process-visual { aspect-ratio:4/5; }
}
@media(min-width:821px) and (max-width:1100px) {
  .home-page .process-step-panel { padding-left:76px; }
}
@media(prefers-reduced-motion:reduce) {
  .home-page .process :is(.process-image,.process-step,.process-marker,.process-marker img,.process-step-title) { transition:none; }
}

/* Closing-day photography and readable quotes form one continuous card. */
.home-page .testimonials { --testimonial-inset:clamp(24px,7vw,110px); background:#f2eadf; color:var(--ink); border-bottom:1px solid var(--line); }
.home-page .testimonial-inner { max-width:none; }
.home-page .testimonial-header { max-width:780px; margin-bottom:36px; }
.home-page .testimonial-header .eyebrow { color:var(--gold-dark); }
.home-page .testimonial-carousel { --testimonial-gap:20px; min-width:0; margin-inline:calc(-1 * var(--testimonial-inset)); }
.home-page .testimonial-track {
  display:block;
  --testimonial-card-width:clamp(260px,22vw,300px);
  column-gap:var(--testimonial-gap);
  overflow-x:auto;
  overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;
  scrollbar-width:thin;
  scrollbar-color:#a99574 transparent;
  border-radius:0;
}
.home-page .testimonial-motion {
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:var(--testimonial-card-width);
  gap:var(--testimonial-gap);
  align-items:stretch;
  width:max-content;
  will-change:transform;
}
.home-page .testimonial-track:not(:has(.testimonial-motion)) { display:grid; grid-auto-flow:column; grid-auto-columns:var(--testimonial-card-width); gap:var(--testimonial-gap); }
.home-page .testimonial-track:focus-visible { outline:none; }
.home-page .testimonial-track:focus-visible .testimonial-attribution { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; }
.home-page .testimonial-carousel.is-enhanced .testimonial-track { scrollbar-width:none; }
.home-page .testimonial-carousel.is-enhanced .testimonial-track::-webkit-scrollbar { display:none; }
.home-page .testimonial-slide { display:flex; flex-direction:column; min-width:0; margin:0; overflow:hidden; border:0; border-radius:var(--radius-image); background:#fffdf9; scroll-snap-align:start; }
.home-page .testimonial-media { overflow:hidden; aspect-ratio:6/7; flex:none; background:#e5d9ca; }
.home-page .testimonial-photo { display:block; width:100%; height:100%; object-fit:cover; object-position:center 40%; background:#e5d9ca; }
.home-page .testimonial-caption { display:flex; flex:1; flex-direction:column; padding:20px 20px 18px; }
.home-page .testimonial-quote { margin:0; color:#3e4036; font:400 1.125rem/1.45 var(--font-display); }
.home-page .testimonial-attribution { margin:auto 0 0; padding-top:18px; color:var(--gold-dark); font-size:.7rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; }
/* Continuous motion uses a duplicate set; only the original cards are announced. */
.home-page .testimonial-carousel.is-enhanced .testimonial-track { scroll-snap-type:none; }
.home-page .testimonial-carousel.is-reduced-motion .testimonial-track { scroll-snap-type:x mandatory; }
.home-page .testimonial-carousel.is-reduced-motion [data-testimonial-clone] { display:none; }
.home-page .testimonial-status { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
@media(min-width:821px) {
  .home-page .testimonial-carousel { --testimonial-gap:48px; max-width:1320px; margin-inline:auto; }
  .home-page .testimonial-track { --testimonial-card-width:clamp(320px,29vw,400px); }
  .home-page .testimonial-caption { padding:28px 28px 26px; }
  .home-page .testimonial-carousel.is-enhanced:not(.is-reduced-motion) .testimonial-track {
    -webkit-mask-image:linear-gradient(to right,transparent,#000 48px,#000 calc(100% - 48px),transparent);
    mask-image:linear-gradient(to right,transparent,#000 48px,#000 calc(100% - 48px),transparent);
  }
}

/* Native disclosure elements remain usable with JS off and expose state to AT. */
.home-page .faq { grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr); gap:clamp(40px,7vw,110px); background:var(--paper); }
.home-page .faq-heading { max-width:420px; }
.home-page .faq-heading>p:not(.eyebrow) { margin:24px 0; max-width:340px; font-size:1rem; color:#625d55; }
.home-page .faq-heading .text-link { display:inline-flex; gap:12px; padding-bottom:5px; border-bottom:1px solid #a99574; }
.home-page .faq-content { padding-top:0; max-width:none; }
.home-page .faq-list { margin:0; gap:0; border-top:1px solid #d7cbbc; }
.home-page .faq-detail { border-bottom:1px solid #d7cbbc; }
.home-page .faq-detail summary { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:24px 0; list-style:none; font:600 1rem/1.6 var(--font-body); cursor:pointer; }
.home-page .faq-detail summary::-webkit-details-marker { display:none; }
.home-page .faq-symbol { position:relative; width:28px; height:28px; flex:none; color:var(--gold-dark); }
.home-page .faq-symbol::before,.home-page .faq-symbol::after { content:''; position:absolute; left:7px; top:13px; width:14px; height:1px; background:currentColor; }
.home-page .faq-symbol::after { transform:rotate(90deg); transition:transform .2s ease; }
.home-page .faq-detail[open] .faq-symbol::after { transform:rotate(0); }
.home-page .faq-detail-answer { padding:0 40px 25px 0; }
.home-page .faq-detail-answer p { margin:0; color:#625d55; font-size:1rem; line-height:1.8; }
.home-page .faq-detail-answer a { text-decoration:underline; text-underline-offset:4px; color:#69512e; }

/* Live copy sits over a soft photo fade; narrow screens stack copy and image. */
.home-page .final-cta { display:block; min-height:0; background:var(--paper); color:var(--ink); text-align:left; }
.home-page .cta-panel { position:relative; isolation:isolate; display:flex; align-items:center; width:100%; min-height:460px; overflow:hidden; border:1px solid rgba(169,133,73,.32); border-radius:var(--radius-image); background:var(--paper); box-shadow:0 12px 32px rgba(75,57,31,.08),0 2px 6px rgba(75,57,31,.03); }
.home-page .cta-panel::after { content:""; position:absolute; z-index:0; inset:0; pointer-events:none; background:linear-gradient(90deg,var(--paper) 0%,rgba(255,253,249,.82) 18%,rgba(255,253,249,.5) 35%,rgba(255,253,249,.18) 48%,rgba(255,253,249,0) 58%); }
.home-page .cta-content { position:relative; z-index:1; width:52%; max-width:none; padding:clamp(32px,4vw,60px); }
.home-page .cta-content h2 { font-size:clamp(2.625rem,3.5vw,3.75rem); }
.home-page .cta-content .eyebrow { color:var(--gold-dark); }
.home-page .cta-content p:not(.eyebrow) { max-width:390px; margin:24px 0 30px; color:var(--ink); font:400 1rem/1.75 var(--font-body); }
.home-page .cta-content .button-light { background:var(--gold-dark); color:var(--paper); }
.home-page .cta-content .button-light:hover { background:#70552d; }
.home-page .cta-content a:focus-visible { outline-color:var(--gold-dark); }
.home-page .cta-detail { display:block; margin-top:20px; color:var(--ink); font-size:.75rem; }
.home-page .cta-photo { position:absolute; z-index:-1; inset:0; min-width:0; }
.home-page .cta-photo img { display:block; width:100%; height:100%; object-fit:cover; object-position:right center; }
@media(max-width:1000px) {
  .home-page .cta-panel { display:flex; flex-direction:column; min-height:0; }
  .home-page .cta-panel::after { display:none; }
  .home-page .cta-content { width:100%; padding:40px 28px 16px; }
  .home-page .cta-content h2 { font-size:clamp(2rem,5.2vw,2.625rem); }
  .home-page .cta-photo { position:relative; z-index:0; inset:auto; width:100%; aspect-ratio:1.2; }
  .home-page .cta-photo::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(var(--paper),rgba(255,253,249,.55) 8%,rgba(255,253,249,0) 24%); }
}
.home-page footer { grid-template-columns:minmax(0,.9fr) minmax(0,1fr) minmax(0,.8fr); gap:40px; }
.home-page .footer-note p { font:500 clamp(1.375rem,2vw,1.875rem)/1.3 var(--font-display); }
.home-page .footer-note small { font-size:.75rem; line-height:1.6; letter-spacing:0; text-transform:none; }
.home-page .footer-links strong { font-size:.75rem; }
.home-page .footer-links a:hover { text-decoration:underline; text-underline-offset:4px; }

@media(min-width:821px) and (max-width:1150px) {
  .home-page .hero-content { margin-left:5vw; width:38vw; }
  .home-page .hero h1 { font-size:clamp(3rem,4.85vw,3.5rem); }
  .home-page .hero-copy { max-width:350px; }
  .home-page .product-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
  .home-page .product-card:last-child { grid-column:auto; width:auto; margin:0; }
  .home-page .product-heading h3 { min-height:2.16em; }
}
@media(max-width:820px) {
  .home-page { --section-padding-block:72px; }
  .home-page .section { padding-inline:24px; }
  .home-page .hero { display:flex; flex-direction:column; align-items:flex-start; height:100svh; min-height:0; padding:0; }
  .home-page .hero-content { width:100%; margin:0; padding:100px 24px 0; }
  .home-page .hero h1 { max-width:620px; font-size:clamp(2.25rem,5.1svh,3.5rem); line-height:.98; }
  .home-page .hero .eyebrow { display:none; }
  .home-page .hero-copy { max-width:530px; margin-top:14px; font-size:1rem; line-height:1.5; }
  .home-page .hero-actions { flex-direction:row; flex-wrap:wrap; align-items:center; gap:12px; margin-top:18px; }
  .home-page .hero-actions .button { min-height:50px; padding:14px 18px; font-size:.875rem; }
  .home-page .hero-image { position:absolute; inset:110px 0 -34px; width:100%; aspect-ratio:auto; overflow:hidden; -webkit-mask-image:linear-gradient(transparent,#000 54px); mask-image:linear-gradient(transparent,#000 54px); }
  .home-page .hero-image img { width:100%; max-width:100%; height:100%; margin:0; object-fit:cover; object-position:center; }
  .home-page .hero-wash { display:none; }
  .home-page .about { grid-template-columns:1fr; gap:40px; }
  .home-page .about-image-wrap { width:100%; max-width:600px; }
  .home-page .about-image-wrap>img { aspect-ratio:5/4; object-position:center 43%; }
  .home-page .collection-heading { display:block; margin-bottom:30px; }
  .home-page .collection-intro { max-width:540px; }
  .home-page .product-card { padding:14px; }
  .home-page .product-heading h3 { font-size:1.875rem; }
  .home-page .product-grid { gap:24px 16px; }
  .home-page .process-layout { grid-template-columns:1fr; grid-template-areas:'intro' 'timeline' 'actions'; gap:32px; }
  .home-page .process-visual { display:none; }
  .home-page .process-timeline { margin-top:0; border-top:1px solid rgba(169,133,73,.2); }
  .home-page .process-step { margin:0; padding:0; border-bottom:1px solid rgba(169,133,73,.2); }
  .home-page .process-step-button { grid-template-columns:minmax(0,1fr) 20px; gap:16px; min-height:80px; padding:22px 0; align-items:center; }
  .home-page .process-marker { display:none; }
  .home-page .process-step-copy { display:grid; grid-template-columns:24px minmax(0,1fr); gap:12px; align-items:baseline; }
  .home-page .process-step .step-number { margin:0; letter-spacing:.08em; }
  .home-page .process-step-title { margin:0; font-size:1.625rem; line-height:1.15; }
  .home-page .process-step-panel { padding:0 0 24px; }
  .home-page .process-step-description { margin:0; max-width:none; }
  .home-page .process-step-panel .process-image { margin-top:18px; }
  .home-page .process.is-enhanced .process-toggle { position:relative; display:block; width:20px; height:20px; color:var(--gold-dark); }
  .home-page .process-toggle::before,.home-page .process-toggle::after { content:''; position:absolute; background:currentColor; }
  .home-page .process-toggle::before { width:14px; height:1px; left:3px; top:9px; }
  .home-page .process-toggle::after { width:1px; height:14px; left:9px; top:3px; }
  .home-page .process-step-button[aria-expanded="true"] .process-toggle::after { display:none; }
  .home-page .process-actions { padding-left:0; margin:0 auto; }
  .home-page .process-actions .button { width:100%; }
  .home-page .testimonial-header { text-align:left; }
  .home-page .testimonials { --testimonial-inset:24px; }
  .home-page .testimonial-carousel { --testimonial-gap:16px; }
  .home-page .testimonial-track { --testimonial-card-width:min(280px,calc(100vw - 64px)); }
  .home-page .testimonial-caption { padding:20px 20px 18px; }
  .home-page .testimonial-quote { font-size:1.125rem; }
  .home-page .faq { grid-template-columns:1fr; gap:36px; }
  .home-page .faq-heading { max-width:540px; }
  .home-page .faq-heading>p:not(.eyebrow) { max-width:none; }
  .home-page .faq-detail summary { gap:16px; padding:22px 0; }
  .home-page .faq-detail-answer { padding-right:12px; }
  .home-page footer { grid-template-columns:1fr 1fr; gap:36px; }
  .home-page .footer-note { grid-column:1/-1; }
}
@media(max-width:590px) {
  .home-page .product-grid { grid-template-columns:1fr; }
  .home-page .product-card:last-child { width:auto; }
  .home-page .hero-actions .text-link { font-size:.875rem; }
  .home-page .brand-name { max-width:180px; }
  .home-page .collection-reassurance { margin-top:24px; line-height:1.7; }
  .home-page footer { grid-template-columns:1fr; }
  .home-page .footer-note { grid-column:auto; }
}
@media(max-width:820px) and (max-height:740px) {
  .home-page .hero-content { padding-top:88px; }
  .home-page .hero h1 { font-size:2.125rem; }
  .home-page .hero-copy { margin-top:10px; }
  .home-page .hero-actions { margin-top:12px; }
}
/* In short landscape windows, scale spacing before allowing the content to clip. */
@media(min-width:821px) and (max-height:650px) {
  .home-page .hero-content { padding-top:100px; padding-bottom:24px; }
  .home-page .hero h1 { font-size:clamp(2.75rem,4vw,3.75rem); }
  .home-page .hero .eyebrow { margin-bottom:12px; }
  .home-page .hero-copy { margin-top:16px; line-height:1.5; }
  .home-page .hero-actions { margin-top:20px; }
}
