/* Homepage composition; navigation is maintained in header-design.css. */

/* Layered dissolves with a shared grid keeping all copy heights stable. */
body.home-refresh section.home-hero-stage { min-height: max(760px, calc(100svh - var(--banner-chrome-height))); padding: 70px 0; }
body.home-refresh .hero-copy > h1 { margin: 18px 0 26px; }
body.home-refresh .hero-copy > h1 > :is(span, em) { display: block; }
body.home-refresh main .hero-copy > h1 > :is(span, em) { color: var(--home-ink); }
body.home-refresh .hero-copy > p { margin: 24px 0; }
body.home-refresh .hero-note { margin-top: 24px; }
body.home-refresh .hero .hero-art { z-index: -2; inset: 0; height: auto; }
body.home-refresh .hero .hero-art .hero-slide-image { object-position: center top; }
body.home-refresh .hero .hero-slide-image { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; z-index: 0; transition: opacity .8s linear; }
body.home-refresh .hero .hero-slide-image.is-previous { opacity: 1; }
body.home-refresh .hero .hero-slide-image.is-active { opacity: 1; z-index: 1; }
body.home-refresh .hero-copy-stage { display: grid; }
body.home-refresh .hero-copy-stage > .hero-copy { grid-area: 1 / 1; min-width: 0; width: 100%; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .18s ease, visibility 0s linear .18s; }
body.home-refresh .hero-copy-stage > .hero-copy.is-active { opacity: 1; visibility: visible; pointer-events: auto; transition: opacity .45s ease .15s, visibility 0s; }
.home-visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }

/* The feature image and four selectable rows form one editorial composition. */
body.home-refresh .craft-promise { padding: 84px 0; }
body.home-refresh .craft-promise-heading { display: grid; grid-template-columns: 1.4fr 1fr; align-items: end; gap: 16px 50px; max-width: none; text-align: left; margin-bottom: 38px; }
body.home-refresh .craft-promise-heading .eyebrow { grid-column: 1 / -1; justify-content: flex-start; }
body.home-refresh .craft-promise-heading h2 { margin: 0; }
body.home-refresh .craft-promise-heading > p { margin: 0 0 4px; max-width: 300px; }
body.home-refresh .craft-promise-grid { grid-template-columns: .88fr 1.12fr; gap: 38px; }
body.home-refresh .craft-promise-photo { min-height: 0; height: auto; align-self: start; border-radius: 24px; background: #dedfdf; }
body.home-refresh .craft-photo-frame { position: relative; aspect-ratio: 4 / 5; }
body.home-refresh .craft-promise-photo img { object-fit: contain; object-position: center top; }
body.home-refresh .craft-promise-photo::after { display: none; }
body.home-refresh .craft-photo-caption { position: static; padding: 24px 26px; color: #fff; background: var(--home-ink); pointer-events: none; }
body.home-refresh .craft-photo-caption > span { display: block; color: var(--home-gold); font-size: 11px; letter-spacing: .11em; margin-bottom: 12px; }
body.home-refresh .craft-photo-caption strong { display: block; max-width: 380px; font-size: 23px; line-height: 1.2; letter-spacing: -.03em; }
body.home-refresh .craft-promise-cards { grid-template-columns: 1fr; gap: 0; }
body.home-refresh .craft-promise-cards article { position: relative; display: grid; grid-template-columns: 32px 1fr 36px; gap: 8px 14px; align-content: center; min-height: 145px; padding: 25px 24px; background: transparent; border-radius: 0; border-top: 1px solid #d9dbd5; box-shadow: none; }
body.home-refresh .craft-promise-cards article:last-child { border-bottom: 1px solid #d9dbd5; }
body.home-refresh .craft-feature-number { grid-column: 1; grid-row: 1 / 3; color: var(--home-gold-text); font-size: 12px; padding-top: 4px; }
body.home-refresh .craft-promise-icon { grid-column: 3; grid-row: 1 / 3; width: 36px; height: 36px; margin: 0; background: transparent; }
body.home-refresh .craft-promise-icon svg { width: 28px; height: 28px; }
body.home-refresh .craft-promise-cards h3 { grid-column: 2; grid-row: 1; font-size: 21px; margin: 0; }
body.home-refresh .craft-promise-cards p { grid-column: 2; grid-row: 2; font-size: 15px !important; line-height: 1.7 !important; }
body.home-refresh .craft-promise-cards article.is-active { background: var(--home-ink); border-color: var(--home-ink); border-radius: 16px; box-shadow: 0 10px 25px rgb(32 33 30 / 8%); }
body.home-refresh .craft-promise-cards article.is-active :is(h3, p) { color: #fff; }
body.home-refresh .craft-promise-cards article.is-active :is(.craft-feature-number, .craft-promise-icon) { color: var(--home-gold); }
body.home-refresh .craft-promise-cards article:hover:not(.is-active) { background: #ededeb; box-shadow: none; }

/* Business orders have their own photographic brief beside the enquiry form. */
body.home-refresh #bulk { grid-template-columns: 1fr 1.03fr; gap: 38px; padding: 76px 0; }
body.home-refresh #bulk > .bulk-copy:first-child { padding: 0; background: var(--home-ink); border-radius: 24px; overflow: hidden; }
body.home-refresh #bulk .bulk-business-photo { display: block; width: 100%; height: 300px; object-fit: cover; object-position: center 35%; }
body.home-refresh #bulk > .bulk-copy:first-child .bulk-copy-content { padding: 30px; }
body.home-refresh #bulk > .bulk-copy:first-child .bulk-copy-content .eyebrow { color: var(--home-gold); }
body.home-refresh #bulk > .bulk-copy:first-child .bulk-copy-content h2 { color: #fff; margin: 17px 0; }
body.home-refresh #bulk > .bulk-copy:first-child .bulk-copy-content h2 em { color: var(--home-gold); }
body.home-refresh #bulk > .bulk-copy:first-child .bulk-copy-content p { color: #d6d7d3; margin: 0 0 20px; }
body.home-refresh #bulk .bulk-topics { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 22px 0 24px; }
body.home-refresh #bulk .bulk-topics li { padding: 8px 12px; color: #e9eae6; border: 1px solid #5c5e56; border-radius: 999px; font-size: 11px; }
body.home-refresh #bulk > .bulk-copy:first-child .bulk-copy-content .bulk-phone { padding: 0; border: 0; color: #fff; margin-top: 0; font-size: 14px; }
body.home-refresh #bulk > .bulk-copy:first-child .bulk-copy-content .bulk-phone strong { color: var(--home-gold); }
body.home-refresh #bulk > form { padding: 32px; }
body.home-refresh #bulk > form .form-note { text-align: left; }

/* A dark rating panel anchors the review carousel; Google marks stay small and crisp. */

/* Visiting the physical shop takes priority over repeated contact information. */
body.home-refresh #visit { padding: 80px 0 48px; }
body.home-refresh #visit .visit-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0; border-radius: 24px; }
body.home-refresh .visit-workshop-photo { position: relative; margin: 0; min-height: 450px; }
body.home-refresh .visit-workshop-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
body.home-refresh .visit-workshop-photo figcaption { position: absolute; left: 24px; bottom: 24px; padding: 11px 15px; background: rgb(255 255 255 / 94%); color: var(--home-ink); font-size: 12px; border-radius: 999px; }
body.home-refresh #visit .visit-card { padding: 40px; }
body.home-refresh #visit .eyebrow, body.home-refresh #faq .eyebrow { color: var(--home-gold-text); }
body.home-refresh #visit .visit-card > p { color: var(--home-muted); margin: 20px 0; }
body.home-refresh #visit address { padding: 18px 0 0; border-top: 1px solid #d9dbd5; font-weight: 500; }
body.home-refresh #visit .visit-hours { margin-top: 22px; border: 0; }
body.home-refresh #visit .visit-hours summary { padding: 12px 0; justify-content: flex-start; gap: 12px; color: var(--home-gold-text); font-size: 13px; }
body.home-refresh #visit .visit-hours summary::after { content: '+'; font-size: 19px; }
body.home-refresh #visit .visit-hours[open] summary::after { content: '−'; }
body.home-refresh #visit .visit-hours .store-hours { margin: 4px 0 0; padding: 0; border: 0; }
body.home-refresh #visit .store-hours .store-hours-note { font-size: 11px !important; margin: 8px 0 0; }
body.home-refresh #visit .button-row { margin-top: 18px; }

/* A human, photographic FAQ introduction replaces the repeated logo card. */
body.home-refresh #faq { grid-template-columns: .9fr 1.25fr; gap: 58px; padding: 60px 0 80px; }
body.home-refresh #faq .faq-intro h2 { margin: 16px 0 24px; }
body.home-refresh .faq-help-photo { position: relative; margin: 0; overflow: hidden; border-radius: 20px; background: var(--home-ink); aspect-ratio: 5 / 4; }
body.home-refresh .faq-help-photo > img { width: 100%; height: 100%; object-fit: cover; object-position: 70% center; }
body.home-refresh .faq-help-photo::after { content: ''; position: absolute; inset: 35% 0 0; background: linear-gradient(transparent, rgb(20 21 19 / 92%)); pointer-events: none; }
body.home-refresh .faq-help-photo figcaption { position: absolute; z-index: 1; left: 26px; right: 26px; bottom: 26px; color: #fff; }
body.home-refresh .faq-help-photo strong { display: block; margin-bottom: 12px; font-size: 22px; }
body.home-refresh .faq-help-photo a { display: inline-flex; align-items: center; gap: 10px; font-size: 13px; color: #fff; border-bottom: 1px solid var(--home-gold); padding-bottom: 5px; }
body.home-refresh #faq .faq-list { align-self: center; }

@media (max-width: 1250px) {
  body.home-refresh section.home-hero-stage { min-height: max(680px, calc(100svh - var(--banner-chrome-height))); }
  body.home-refresh .hero .hero-art .hero-slide-image { object-position: 60% top; }
  body.home-refresh .craft-promise-grid { gap: 25px; }
}
@media (max-width: 1100px) {
  body.home-refresh section.home-hero-stage { display: block; min-height: 0; padding: 58px 0 calc(66.667vw + 36px); }
  body.home-refresh .hero::before { background: none; }
  body.home-refresh .hero .hero-art { inset: auto 0 0; height: 66.667vw; }
  body.home-refresh .hero .hero-art .hero-slide-image { object-position: right center; }
  body.home-refresh .hero-copy > h1 { max-width: 100%; font-size: 52px; }
  body.home-refresh .hero-copy > :is(p, .button-row, .hero-note) { max-width: 620px; }
  body.home-refresh .craft-promise-grid { grid-template-columns: 1fr 1fr; }
  body.home-refresh .craft-promise-cards article { padding: 21px 18px; grid-template-columns: 25px 1fr; min-height: 155px; }
  body.home-refresh .craft-promise-icon { display: none; }
  body.home-refresh .craft-promise-cards h3 { font-size: 19px; }
  body.home-refresh .craft-promise-photo { min-height: 0; height: auto; }
  body.home-refresh #bulk { gap: 24px; }
  body.home-refresh #bulk > form, body.home-refresh #bulk > .bulk-copy:first-child .bulk-copy-content { padding: 25px; }
  body.home-refresh #visit .visit-card { padding: 28px; }
}
@media (max-width: 760px) {
  body.home-refresh section.home-hero-stage { padding-top: 34px; }
  body.home-refresh .hero-copy > h1 { font-size: clamp(30px, 9vw, 45px); }
  body.home-refresh .hero-copy > p { margin: 22px 0; }
  body.home-refresh .craft-promise { padding: 50px 0; }
  body.home-refresh .craft-promise-heading { grid-template-columns: 1fr; gap: 16px; margin-bottom: 28px; }
  body.home-refresh .craft-promise-grid { grid-template-columns: 1fr; gap: 22px; }
  body.home-refresh .craft-promise-photo { min-height: 0; height: auto; }
  body.home-refresh .craft-photo-caption { padding: 22px 24px; }
  body.home-refresh .craft-photo-caption strong { font-size: 22px; }
  body.home-refresh .craft-promise-cards article { padding: 23px 20px; min-height: 136px; }
  body.home-refresh .craft-promise-cards p { font-size: 15px !important; }
  body.home-refresh #bulk { grid-template-columns: 1fr; padding: 48px 0; gap: 24px; }
  body.home-refresh #bulk .bulk-business-photo { height: 260px; }
  body.home-refresh #bulk > .bulk-copy:first-child .bulk-copy-content h2 { font-size: 32px !important; }
  body.home-refresh #visit { padding: 48px 0 28px; }
  body.home-refresh #visit .visit-grid { grid-template-columns: 1fr; }
  body.home-refresh .visit-workshop-photo { min-height: 290px; }
  body.home-refresh #visit .visit-card { padding: 28px 24px; }
  body.home-refresh #visit .visit-card .eyebrow { line-height: 1.7; }
  body.home-refresh #faq { grid-template-columns: 1fr; gap: 30px; padding: 40px 0 55px; }
  body.home-refresh .faq-help-photo { aspect-ratio: 5 / 4; }
}
@media (prefers-reduced-motion: reduce) {
  body.home-refresh .hero .hero-slide-image { transition: none; }
  body.home-refresh .hero-copy-stage > .hero-copy { transition: none; }
}
