/* Homepage-only art direction. Shared booking and dashboard styling stays intact. */
.home-page { --home-copper: #dbad8b; --deep: #062b30; }
.home-wrap { width: min(1280px, calc(100% - 104px)); margin-inline: auto; }
.home-section { padding-block: 112px; }
.home-page h2 { font-size: clamp(38px, 4.1vw, 60px); line-height: 1.08; }
.home-page h2 em { color: var(--copper); }
.home-page p { text-wrap: pretty; }
.home-page .eyebrow { font-size: 11px; letter-spacing: .16em; }
.home-header { background: var(--ivory); position: relative; z-index: 5; }
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 28px; min-height: 96px; }
.home-brand { display: block; flex: 0 0 218px; width: 218px; }
.home-header nav { display: flex; align-items: center; gap: 28px; }
.home-header nav a { padding: 14px 0; font-size: 13px; text-decoration: none; }
.home-header nav a:hover { text-decoration: underline; }
.home-header nav .dashboard-nav { padding-left: 28px; border-left: 1px solid var(--line); }
.home-header nav .nav-talk { background: var(--button-fill); color: var(--paper); padding: 12px 18px; border: 1px solid var(--button-border); border-radius: var(--button-radius); box-shadow: var(--button-shadow); transition: var(--button-motion); }
.home-header nav .nav-talk:hover { text-decoration: none; border-color: #75938b; }
.menu-toggle { display: none; border: 1px solid #c6b9a4; border-radius: var(--button-radius); background: linear-gradient(145deg,#fffaf0,#f1e9d9); box-shadow: inset 0 1px 0 #fff, 0 2px 0 #ddd3bf; color: var(--ink); padding: 10px 14px; gap: 14px; font-size: 14px; min-height: 44px; transition: var(--button-motion); }
.menu-toggle[aria-expanded="true"] { border-color: var(--petrol); background: #ece5d6; box-shadow: inset 0 1px 3px #07383c12; }
.cinematic-hero { min-height: 700px; position: relative; isolation: isolate; overflow: hidden; color: var(--ivory); background: var(--deep); }
.hero-media, .hero-shade { position: absolute; inset: 0; z-index: -2; }
.hero-media picture, .hero-poster, .hero-media video { position: absolute; width: 100%; height: 100%; inset: 0; object-fit: cover; object-position: 65% 0%; }
.hero-media video { opacity: 0; transition: opacity .6s ease; filter: saturate(.78); }
.hero-media video.is-playing { opacity: 1; }
.hero-shade { z-index: -1; background: linear-gradient(90deg,rgba(3,29,32,.93) 0%,rgba(3,29,32,.82) 39%,rgba(3,29,32,.35) 78%,rgba(3,29,32,.22)),linear-gradient(0deg,rgba(3,29,32,.68),transparent 28%,rgba(3,29,32,.12)); }
.cinematic-content { padding-top: 67px; padding-bottom: 100px; }
.home-kicker { display: flex; align-items: center; gap: 14px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .18em; color: #f0ddc6; margin-bottom: 26px; }
.home-kicker span { width: 32px; height: 1px; background: var(--home-copper); }
.cinematic-hero h1 { font-size: clamp(56px, 5.8vw, 84px); line-height: 1.025; letter-spacing: -.047em; max-width: 850px; margin-bottom: 27px; }
.cinematic-hero h1 em { color: #edc5a5; }
.cinematic-hero .hero-intro { font-size: 18px; line-height: 1.65; color: #f0ece1; max-width: 495px; margin-bottom: 27px; }
.home-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; }
.home-page .light-button { background: linear-gradient(120deg,#f0d6b6,#dbb18a 65%,#ca986f); color: #062b30; border-color: #f1d9bb; min-height: 64px; font-size: 14px; padding: 14px 23px; box-shadow: inset 0 1px 0 #fff4df, inset 0 0 0 3px #fff6e921, 0 3px 0 #956342, 0 9px 25px #0003; }
@media(hover:hover) { .home-page .light-button:hover { background: linear-gradient(120deg,#f5e1c7,#e7bf99 65%,#d8aa80); border-color: #fff0d9; box-shadow: inset 0 1px 0 #fff8eb, inset 0 0 0 3px #fff6e933, 0 4px 0 #956342, 0 13px 28px #0004; } }
.home-page .light-button:active { box-shadow: inset 0 2px 3px #95634230, 0 1px 0 #956342; }
.hero-service-link { font-size: 13px; padding-block: 12px; }
.cinematic-hero .booking-reassurance { font-size: 13px; line-height: 1.6; max-width: 450px; color: #e2e6dc; margin-top: 20px; }
.hero-bottom { position: absolute; bottom: 23px; left: 0; right: 0; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.hero-bottom p { font-size: 11px; letter-spacing: .08em; margin: 0; }
.hero-bottom p span { color: #d0d9d2; }
.home-page .cinematic-hero :focus-visible, .home-page .home-contact :focus-visible, .home-page .experience-stage :focus-visible { outline-color: #edc5a5; }
.service-ribbon { border-bottom: 1px solid var(--line); padding-block: 26px; }
.service-ribbon > div { display: flex; justify-content: space-between; align-items: center; gap: 15px; font-size: 12px; letter-spacing: .045em; }
.service-ribbon [aria-hidden] { font-size: 22px; color: var(--copper); }
.challenge { display: grid; grid-template-columns: 1fr 1.16fr; gap: 100px; align-items: center; }
.challenge-copy > p:not(.eyebrow) { max-width: 450px; font-size: 16px; color: var(--muted); }
.challenge-copy .text-link { display: inline-block; margin-top: 6px; }
.challenge-visual { padding-bottom: 28px; }
.challenge figure { margin: 0; position: relative; }
.challenge figure img { width: 100%; aspect-ratio: 1.18; object-fit: cover; object-position: 52% 50%; }
.challenge figcaption { position: absolute; bottom: 0; inset-inline: 0; padding: 65px 28px 26px; color: var(--ivory); font: 25px/1.25 var(--serif); background: linear-gradient(transparent,rgba(3,29,32,.9)); }
.path-note { display: flex; align-items: center; gap: 22px; background: var(--paper); padding: 23px 27px; margin: -2px 28px -28px -28px; position: relative; border: 1px solid #d6d6c8; }
.path-note strong { font-size: 15px; font-weight: 600; }
.path-note p { font-size: 12px; color: var(--muted); margin: 4px 0 0; }
.path-mark { font: 37px var(--serif); color: var(--copper); }
.services-stage { background: #efe9dc; }
.home-section-heading { display: grid; grid-template-columns: 1.35fr 1fr; align-items: end; gap: 100px; margin-bottom: 52px; }
.home-section-heading h2 { margin-bottom: 0; }
.home-section-heading > p { max-width: 410px; font-size: 16px; color: var(--muted); margin-bottom: 4px; }
.services-editorial { display: grid; grid-template-columns: 1fr 1.08fr; gap: 65px; align-items: start; }
.service-image { position: relative; margin: 0; }
.service-image img { width: 100%; aspect-ratio: .96; object-fit: cover; object-position: 40% 50%; }
.service-image figcaption { position: absolute; bottom: 0; left: 0; right: 0; padding: 100px 32px 32px; color: var(--paper); background: linear-gradient(transparent,rgba(3,29,32,.95)); }
.service-image figcaption span { display: block; text-transform: uppercase; letter-spacing: .12em; font-size: 10px; margin-bottom: 12px; }
.service-image strong { font: 43px/1.1 var(--serif); }
.service-accordion details { border-top: 1px solid #bbc2b7; }
.service-accordion details:last-child { border-bottom: 1px solid #bbc2b7; }
.service-accordion summary { display: flex; align-items: center; cursor: pointer; gap: 18px; min-height: 76px; padding-block: 18px; list-style: none; }
.service-accordion summary::-webkit-details-marker { display: none; }
.service-accordion h3 { font-size: 25px; margin: 0; letter-spacing: -.025em; }
.service-index { color: var(--copper); font-size: 11px; flex: 0 0 22px; }
.expand-symbol { margin-left: auto; display: inline-grid; place-items: center; flex: 0 0 32px; width: 32px; height: 32px; border: 1px solid #b5b5a3; border-radius: 50%; background: #fffaf070; color: var(--petrol); font-size: 22px; line-height: 1; font-weight: 300; transition: transform .2s, background .2s; }
.service-accordion summary:hover .expand-symbol { background: #fffaf0; border-color: var(--copper); }
.service-accordion details[open] .expand-symbol { transform: rotate(45deg); }
.service-body { padding: 0 30px 26px 40px; }
.service-body p { font-size: 15px; color: var(--muted); margin-bottom: 15px; }
.service-body a { display: inline-block; font-size: 13px; padding-block: 8px; }
.illustration-note { margin: 26px 0 0; color: var(--muted); font-size: 11px; }
.strategy-invitation { display: grid; grid-template-columns: 1.1fr 1fr; align-items: center; gap: 100px; border-bottom: 1px solid var(--line); }
.strategy-intro > p:not(.eyebrow) { max-width: 470px; color: var(--muted); font-size: 17px; }
.strategy-intro .eyebrow { color: var(--copper); }
.strategy-card { padding: 36px; border: 1px solid #c9b99f; border-radius: 12px; background: linear-gradient(145deg,#fffaf0,#f3ecdd); box-shadow: inset 0 0 0 5px #fcf6e9, 0 16px 36px #07383c09; position: relative; }
.strategy-card::before { content: ''; position: absolute; top: -1px; left: 36px; width: 54px; height: 3px; background: var(--copper); }
.strategy-card .eyebrow { margin-bottom: 18px; color: var(--muted); font-size: 10px; }
.strategy-card-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; padding-bottom: 23px; border-bottom: 1px solid #d6ccba; }
.strategy-card h3 { font-size: 30px; margin: 0; max-width: 220px; }
.strategy-card-price { margin: 0; flex-shrink: 0; font: 48px/1 var(--serif); letter-spacing: -.04em; }
.strategy-card-price span { display: block; text-align: right; color: var(--muted); font: 10px/1.6 var(--sans); letter-spacing: .08em; margin-top: 7px; }
.strategy-card ul { margin: 23px 0; padding: 0; list-style: none; }
.strategy-card li { position: relative; padding-left: 24px; font-size: 14px; margin-bottom: 10px; }
.strategy-card li::before { content: '✓'; position: absolute; left: 0; color: var(--copper); }
.strategy-card .button { display: flex; width: 100%; }
.strategy-card .strategy-scope { color: var(--muted); font-size: 12px; margin: 17px 0 0; }
.industries { display: grid; grid-template-columns: 1.15fr 1fr; gap: 100px; }
.industries-copy > p { font-size: 16px; color: var(--muted); }
.industry-list { display: grid; grid-template-columns: 1fr 1fr; list-style: none; gap: 0 28px; padding: 0; margin: 25px 0 0; }
.industry-list li { border-top: 1px solid var(--line); padding-block: 14px; font-size: 14px; }
.experience-stage { background: var(--petrol); color: var(--ivory); }
.experience-stage .eyebrow { color: #d9b090; }
.experience-stage h2 em { color: #e6be9f; }
.experience-stage .home-section-heading > p { color: #d2dfda; }
.experience-steps { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 32px; padding: 0; list-style: none; margin: 0; }
.experience-steps li { border-top: 1px solid #577272; padding-top: 25px; }
.experience-steps li > span { font-size: 12px; color: #d9b090; display: block; margin-bottom: 25px; }
.experience-steps h3 { font-size: 27px; line-height: 1.15; margin-bottom: 17px; }
.experience-steps p { font-size: 14px; color: #d2dfda; }
.experience-footer { border-top: 1px solid #577272; padding-top: 25px; margin-top: 35px; display: flex; justify-content: space-between; gap: 26px; align-items: center; }
.experience-footer p { margin: 0; font: italic 22px var(--serif); }
.experience-footer a { font-size: 13px; padding-block: 10px; white-space: nowrap; }
.website-approaches { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--line); }
.website-approaches article { padding: 45px 48px; }
.website-approaches article + article { border-left: 1px solid var(--line); background: #f5efdf; }
.approach-label { font-size: 11px; text-transform: uppercase; letter-spacing: .12em; color: var(--copper); }
.website-approaches h3 { font-size: 42px; margin-block: 23px; }
.website-approaches p, .website-approaches li { font-size: 15px; color: var(--muted); }
.website-approaches ul { padding-left: 18px; margin-block: 25px; }
.website-approaches li { padding-bottom: 9px; }
.website-approaches a { display: inline-block; font-size: 13px; padding-block: 10px; }
.website-scope { font-size: 12px; color: var(--muted); margin-top: 22px; }
.human-section { background: #eee7da; padding-block: 72px; }
.human-layout { display: grid; grid-template-columns: 280px 1fr; align-items: center; gap: 78px; max-width: 1090px; }
.human-portrait { margin: 0; }
.human-portrait img { width: 280px; height: 350px; object-fit: cover; }
.human-portrait figcaption { font: italic 15px/1.5 var(--serif); margin-top: 14px; color: var(--muted); }
.human-copy h2 { font-size: clamp(38px,3.4vw,48px); }
.human-copy > p:not(.eyebrow) { color: var(--muted); font-size: 16px; max-width: 640px; }
.human-copy .text-link { display: inline-block; overflow-wrap: anywhere; }
.proof { display: grid; grid-template-columns: 1fr 1fr; gap: 100px; }
.proof h2 { font-size: clamp(38px,3.6vw,52px); }
.proof-list article { padding: 23px 0 23px 36px; position: relative; border-top: 1px solid var(--line); }
.proof-list article > span { position: absolute; left: 0; top: 23px; color: var(--copper); }
.proof-list h3 { font-size: 26px; margin-bottom: 10px; }
.proof-list p { color: var(--muted); margin: 0; font-size: 15px; }
.home-contact { background: var(--deep); color: var(--ivory); position: relative; isolation: isolate; overflow: hidden; }
.contact-scene { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 52%; }
.home-contact::before { content: ''; position: absolute; z-index: -1; inset: 0; background: rgba(3,29,32,.91); }
.contact-content { padding-block: 85px 45px; text-align: center; }
.home-contact .eyebrow { color: #d9b090; }
.home-contact h2 { font-size: clamp(40px,4.5vw,65px); }
.home-contact h2 em { color: #e6be9f; }
.contact-content > p:not(.eyebrow) { color: #d2dfda; max-width: 480px; margin-inline: auto; }
.contact-content .button { margin-top: 13px; }
.contact-content .contact-call-note { font-size: 12px; margin-top: 14px; }
.contact-strategy { margin: 28px auto 32px; }
.contact-strategy > p { font: italic 21px var(--serif); color: #e2d1ba; margin: 0 0 8px; }
.home-contact .strategy-button { color: var(--ivory); background: linear-gradient(135deg,#1b4446c0,#062b30c0); border-color: #75938b; box-shadow: inset 0 1px 0 #fff1, 0 2px 0 #031e22; font-size: 13px; margin-top: 5px; }
.home-contact-links { display: flex; gap: 32px; justify-content: center; border-top: 1px solid #577272; padding-top: 28px; font-size: 14px; }
.home-contact-links a { padding-block: 8px; }
.home-footer { padding-block: 37px; display: flex; align-items: center; justify-content: space-between; gap: 40px; }
.home-footer .home-brand { flex-basis: 190px; width: 190px; }
.home-footer p { font-size: 11px; margin: 3px 0; color: var(--muted); }
.home-footer .media-note { font-size: 10px; max-width: 450px; }
.home-footer > a:last-child { font-size: 12px; white-space: nowrap; padding-block: 10px; }
@media(min-width:1600px) { .cinematic-hero { min-height: 780px; } .cinematic-content { padding-top: 85px; } }
@media(max-width:1100px) {
  .home-wrap { width: calc(100% - 72px); }
  .home-header nav { gap: 18px; }
  .home-header nav .dashboard-nav { padding-left: 18px; }
  .home-brand { flex-basis: 190px; width: 190px; }
  .challenge, .industries, .proof, .home-section-heading { gap: 55px; }
  .strategy-invitation { gap: 55px; }
  .services-editorial { gap: 40px; }
  .experience-steps { gap: 24px; }
  .experience-steps h3 { font-size: 25px; }
}
@media(max-width:900px) {
  .header-inner { min-height: 84px; gap: 18px; flex-wrap: wrap; }
  .home-header nav { flex-basis: 100%; flex-wrap: wrap; padding-bottom: 20px; }
  .menu-enhanced .menu-toggle { display: inline-flex; align-items: center; }
  .menu-enhanced .home-header nav:not(.is-open) { display: none; }
  .home-header nav .dashboard-nav { border: 0; padding-left: 0; }
  .home-header nav .nav-talk { margin-left: auto; }
  .home-section { padding-block: 80px; }
  .cinematic-hero { min-height: 680px; }
  .cinematic-hero h1 { font-size: 64px; }
  .home-section-heading { gap: 35px; }
  .challenge { gap: 40px; }
  .service-image img { aspect-ratio: .75; }
  .service-accordion h3 { font-size: 22px; }
  .services-editorial { gap: 25px; }
  .service-body { padding-left: 0; }
  .experience-steps { grid-template-columns: 1fr 1fr; gap: 28px 40px; }
  .website-approaches article { padding: 30px; }
  .website-approaches h3 { font-size: 36px; }
  .human-layout { grid-template-columns: 230px 1fr; gap: 40px; }
  .human-portrait img { width: 230px; height: auto; }
  .home-footer { gap: 24px; }
}
@media(max-width:760px) {
  .home-wrap { width: calc(100% - 44px); }
  .home-brand { flex-basis: 183px; width: 183px; }
  .header-inner { min-height: 78px; }
  .home-header nav { gap: 8px 25px; }
  .home-header nav a { min-height: 44px; }
  .cinematic-hero { min-height: 650px; }
  .cinematic-content { padding-top: 45px; padding-bottom: 100px; }
  .hero-media picture, .hero-poster, .hero-media video { object-position: 50% 0%; }
  .hero-shade { background: linear-gradient(90deg,rgba(3,29,32,.87),rgba(3,29,32,.69)),linear-gradient(0deg,rgba(3,29,32,.86),transparent 65%); }
  .home-kicker { font-size: 9px; letter-spacing: .13em; margin-bottom: 24px; gap: 10px; }
  .home-kicker span { width: 22px; }
  .cinematic-hero h1 { font-size: clamp(41px,10.7vw,64px); line-height: 1.06; letter-spacing: -.042em; margin-bottom: 23px; }
  .cinematic-hero .hero-intro { font-size: 16px; line-height: 1.6; max-width: 430px; margin-bottom: 25px; }
  .home-hero-actions { display: block; }
  .home-page .light-button { min-height: 64px; padding: 14px 20px; font-size: 13px; gap: 16px; }
  .home-hero-actions .light-button { display: flex; width: 100%; max-width: 410px; }
  .hero-service-link { display: inline-block; font-size: 12px; margin-top: 6px; }
  .cinematic-hero .booking-reassurance { font-size: 12px; margin-top: 12px; max-width: 390px; }
  .hero-bottom { bottom: 20px; gap: 15px; }
  .hero-bottom p { font-size: 10px; max-width: 150px; }
  .hero-bottom p span { display: block; }
  .service-ribbon { padding-block: 20px; }
  .service-ribbon > div { display: grid; grid-template-columns: 1fr 1fr; font-size: 11px; gap: 12px 20px; }
  .service-ribbon [aria-hidden] { display: none; }
  .service-ribbon span:not([aria-hidden])::before { content:'✳'; color: var(--copper); margin-right: 11px; }
  .home-section { padding-block: 65px; }
  .home-page h2 { font-size: clamp(36px,8.4vw,48px); }
  .challenge, .industries, .proof { grid-template-columns: 1fr; gap: 30px; }
  .challenge-copy > p:not(.eyebrow) { max-width: 100%; }
  .challenge-visual { padding-left: 17px; margin-top: 8px; }
  .challenge figure img { aspect-ratio: 1.15; }
  .path-note { margin-left: -17px; margin-right: 17px; padding: 20px; gap: 15px; }
  .challenge figcaption { padding-inline: 23px; font-size: 24px; }
  .home-section-heading { display: block; margin-bottom: 30px; }
  .home-section-heading h2 { margin-bottom: 23px; }
  .home-section-heading > p { max-width: 100%; }
  .services-editorial { grid-template-columns: 1fr; gap: 30px; }
  .strategy-invitation { grid-template-columns: 1fr; gap: 26px; }
  .strategy-intro > p:not(.eyebrow) { font-size: 16px; }
  .strategy-card { padding: 28px 23px; }
  .strategy-card::before { left: 23px; }
  .strategy-card h3 { font-size: 27px; }
  .strategy-card-price { font-size: 43px; }
  .strategy-card .button { padding-inline: 15px; gap: 12px; font-size: 13px; }
  .service-image img { aspect-ratio: 1.35; object-position: 50% 38%; }
  .service-image figcaption { padding: 70px 24px 24px; }
  .service-image strong { font-size: 34px; }
  .service-accordion summary { min-height: 75px; gap: 11px; }
  .service-accordion h3 { font-size: 24px; }
  .service-body { padding-left: 33px; padding-right: 12px; }
  .industry-list { gap: 0 20px; }
  .industry-list li { font-size: 13px; }
  .experience-steps { gap: 25px; }
  .experience-steps li > span { margin-bottom: 19px; }
  .experience-steps h3 { font-size: 25px; }
  .experience-footer { display: block; }
  .experience-footer p { font-size: 21px; margin-bottom: 18px; }
  .experience-footer a { display: inline-block; }
  .website-approaches { grid-template-columns: 1fr; }
  .website-approaches article { padding: 30px 26px; }
  .website-approaches article + article { border-left: 0; border-top: 1px solid var(--line); }
  .website-approaches h3 { font-size: 38px; }
  .human-section { padding-block: 55px; }
  .human-layout { grid-template-columns: 1fr; gap: 30px; }
  .human-portrait { display: flex; align-items: end; gap: 20px; }
  .human-portrait img { width: 190px; height: 238px; }
  .human-portrait figcaption { max-width: 125px; font-size: 15px; margin-bottom: 5px; }
  .human-copy h2 { font-size: 38px; }
  .human-copy .eyebrow { font-size: 10px; }
  .proof-list h3 { font-size: 27px; }
  .contact-content { padding-block: 65px 35px; }
  .home-contact h2 { font-size: 39px; }
  .contact-content > p { font-size: 16px; }
  .home-contact-links { flex-direction: column; gap: 6px; }
  .home-contact .strategy-button { max-width: 100%; font-size: 13px; gap: 15px; padding-inline: 18px; }
  .home-footer { flex-wrap: wrap; padding-block: 30px; gap: 24px; }
  .home-footer > div { order: 3; flex-basis: 100%; }
  .home-footer .home-brand { flex-basis: 174px; width: 174px; }
  .home-footer > a:last-child { margin-left: auto; }
}
@media(max-width:400px) { .experience-steps { grid-template-columns: 1fr; } .cinematic-hero { min-height: 675px; } .human-portrait img { width: 170px; height: 212px; } }
@media(max-height:500px) and (orientation:landscape) { .cinematic-hero { min-height: 615px; } .cinematic-content { padding-top: 35px; } .cinematic-hero h1 { font-size: 52px; } }
@media(prefers-reduced-motion:reduce) { .home-page *, .home-page *::before, .home-page *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; } .home-page .hero-media video { display: none; } }
@media print { .hero-media, .hero-shade, .menu-toggle, .contact-scene, .home-header nav { display: none !important; } .home-page .cinematic-hero, .home-page .experience-stage, .home-page .home-contact { background: white; color: #143d3f; } .home-page .cinematic-hero *, .home-page .home-contact *, .home-page .experience-stage * { color: #143d3f !important; } .cinematic-hero { min-height: 0; } .home-section, .cinematic-content { padding-block: 30px; } .hero-bottom { position: static; } .home-wrap { width: 100%; } }
