/* DOLI HOUSE / Shared visual layer — content and CMS fields remain unchanged. */
:root {
  --ds-yellow:#ffd438; --ds-black:#101010; --ds-white:#fff;
  --ds-gray:#5b5b5b; --ds-gray-on-dark:#bdbdbd;
  --ds-line-light:#e7e7e7; --ds-line-dark:rgba(255,255,255,.14);
  --ds-container:1380px; --ds-section:88px; --ds-gap:18px; --ds-radius:8px;
  --ds-font:"Manrope",Arial,system-ui,sans-serif;
  --ds-h1:clamp(54px,5.7vw,76px); --ds-h2:clamp(36px,4vw,52px); --ds-h3:clamp(21px,2vw,26px);
  --ds-ease:160ms ease;
  --lux-gold:#ffd438;--lux-gold-light:#ffd438;--lux-gold-deep:#b79619;
  --focus-gold:#ffd438;--focus-gold-light:#ffd438;
}
html{scroll-padding-top:82px}
body{font-family:var(--ds-font);font-size:16px;line-height:1.65;overflow-x:clip}
body :is(h1,h2,h3,h4){font-family:var(--ds-font)!important;letter-spacing:-.035em;line-height:1.12;overflow-wrap:anywhere;text-transform:none}
body :is(h1,h2,h3,h4) em{font-style:normal}
body .hero h1,body .page-hero h1{font-size:var(--ds-h1)!important;line-height:1.04;max-width:14ch}
body :is(.section-head h2,.cta h2,.product-section-heading h2,.occasion-heading h2,.advantages-heading h2,.location-shortcuts-intro h2){font-size:var(--ds-h2)!important;line-height:1.12;max-width:23ch}
body :is(.section-head h2,.cta h2,.hero h1) :is(span,em){font-family:inherit!important;font-size:inherit;font-weight:inherit;color:inherit!important}
body :is(.info-box,.category-card,.tour-time-card,.tour-choice-card,.route-panel,.step-card,.day-tour-panel,.service-card,.outfit-photo-card,.photoshoot-album-card,.signature-card,.makeup-photo){border-radius:var(--ds-radius)!important;box-shadow:none!important;transition:transform var(--ds-ease),border-color var(--ds-ease),background-color var(--ds-ease)}
body :is(.info-box,.category-card,.tour-time-card,.tour-choice-card,.route-panel,.step-card,.day-tour-panel,.service-card,.outfit-photo-card){border:1px solid var(--ds-line-dark)}
body :is(.info-box,.category-card,.tour-time-card,.tour-choice-card,.route-panel,.step-card,.day-tour-panel) h3{font-family:var(--ds-font)!important;font-size:var(--ds-h3);line-height:1.22;letter-spacing:-.025em}
body :is(.info-box,.category-card,.tour-time-card,.tour-choice-card,.route-panel,.step-card,.day-tour-panel,.service-card,.outfit-photo-card,.photoshoot-album-card):hover{transform:translateY(-2px)!important;box-shadow:none!important}
body :is(.btn,.primary,.secondary,.header-contact,.header-consult a,.makeup-service-link,.center-actions a,.cta a){min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;max-width:100%;padding:10px 20px;border-radius:var(--ds-radius)!important;font-family:var(--ds-font);font-size:12px;font-weight:700;letter-spacing:.035em;line-height:1.3;text-align:center;text-decoration:none;white-space:normal;overflow-wrap:anywhere;transition:background-color var(--ds-ease),color var(--ds-ease),border-color var(--ds-ease)}
body :is(.btn.primary,.primary,.header-contact){background:var(--ds-yellow);color:var(--ds-black);border:1px solid var(--ds-yellow)}
body :is(.btn.secondary,.secondary){background:transparent;border:1px solid currentColor}
body :is(.btn,.primary,.secondary,.header-contact,.makeup-service-link):hover{transform:none;box-shadow:none}
body :is(.section,.home-services,.home-concepts,.home-story,.makeup-services,.makeup-album,.jeep-times,.jeep-locations,.tour-options){padding-block:var(--ds-section)}
body :is(.hero,.page-hero,.home-focus){background-image:none!important}
body .hero,body .page-hero{background-color:var(--ds-black)!important;color:var(--ds-white)}
body .hero::before,body .page-hero::before{display:none!important}
body .section{background-image:none!important;background-color:var(--ds-black);border-top:0}
body .section:nth-of-type(even){background-image:none!important;background-color:#171717}
body :is(.makeup-services,.jeep-times,.tour-options,.photoshoot-albums,.home-services){background-image:none!important;background-color:var(--ds-white)!important;color:var(--ds-black)!important}
body :is(.makeup-services,.jeep-times,.tour-options,.photoshoot-albums,.home-services) .section-head h2,body :is(.makeup-services,.jeep-times,.tour-options,.photoshoot-albums,.home-services) .section-head h2 :is(span,em){color:var(--ds-black)!important}
body :is(.makeup-services,.jeep-times,.tour-options,.photoshoot-albums,.home-services) .section-head>p{color:var(--ds-gray)!important}
body .lang-toggle button.active,body .hero-facts strong,body :is(.label,.dress-color-tag,.resort-hot-tag){background-image:none!important;background-color:var(--ds-yellow)!important;color:var(--ds-black)!important}
body .cta,body .jeep-price-strip{background-image:none!important;background-color:var(--ds-yellow)!important;color:var(--ds-black)}
body .tour-choice-card,body .route-panel,body .step-card,body .tour-time-card{background-image:none!important}
body .page-hero{min-height:0;gap:clamp(28px,4vw,60px);padding-block:clamp(54px,6vw,88px)}
body .page-hero .hero-copy>p:not(.kicker){max-width:50ch;font-size:16px;line-height:1.65}
body :is(.section-head,.content-grid,.makeup-service-grid,.tour-time-grid,.jeep-location-grid,.tour-choice-grid){gap:var(--ds-gap)}
body .section-head{align-items:end;margin-bottom:clamp(24px,3vw,42px)}
body .section-head>p{max-width:46ch;line-height:1.65}
/* One image-forward card language for the five existing photoshoot destinations. */
body .photoshoot-album-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--ds-gap)}
body .photoshoot-album-card{display:flex;flex-direction:column;min-width:0;overflow:hidden;background:var(--ds-black);color:var(--ds-white);border:1px solid var(--ds-line-dark)!important}
body .photoshoot-album-card img{width:100%;aspect-ratio:4/5;object-fit:cover;flex:none}
body .photoshoot-album-title{min-height:100px;padding:18px 16px;align-items:flex-start;gap:8px}
body .photoshoot-album-title strong{font-size:clamp(16px,1.25vw,20px);line-height:1.25;color:var(--ds-white)}
body .photoshoot-album-title small,body .photoshoot-album-title>span:last-child{color:var(--ds-yellow)}
/* Makeup and Tour reuse one card rhythm and clear image framing. */
body .makeup-service-grid,body .tour-time-grid{gap:var(--ds-gap)}
body .makeup-service-grid .info-box{min-height:250px;padding:28px;background:var(--ds-black);color:var(--ds-white)}
body .makeup-service-grid .info-box p{color:var(--ds-gray-on-dark)}
body .makeup-service-link{margin-top:auto;padding-inline:0;border:0;border-radius:0!important;color:var(--ds-yellow)}
body .makeup-hero-photo,body .service-visual{border:0;border-radius:var(--ds-radius)!important;box-shadow:none}
body .makeup-photo-grid{gap:var(--ds-gap)}
body .tour-time-card,body .tour-choice-card{padding:28px;background:var(--ds-black);color:var(--ds-white)}
body .tour-choice-card h3{font-size:clamp(26px,2.5vw,36px);line-height:1.12}
body .tour-choice-card h3 em,body .tour-choice-number,body .tour-choice-card>b{color:var(--ds-yellow)}
body .tour-choice-card>p:not(.kicker),body .tour-choice-card--dark>p:not(.kicker){color:var(--ds-gray-on-dark)}
body .tour-time-card:nth-child(n){border:1px solid var(--ds-line-dark);background:var(--ds-black)}
body .tour-time-card:nth-child(n) .kicker{color:var(--ds-yellow)}
body .tour-time-card strong{color:var(--ds-yellow)}
body .route-panel{padding:28px;background:var(--ds-black);color:var(--ds-white)}
/* Footer: three columns; social contacts live with the brand. */
body .site-footer{background:var(--ds-black);color:var(--ds-gray-on-dark);padding-inline:max(24px,calc((100vw - var(--ds-container))/2))}
body .footer-main{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(150px,.7fr) minmax(230px,1fr);gap:clamp(24px,4vw,72px);padding-block:58px}
body .footer-tagline{margin-top:20px;gap:8px}
body .footer-tagline>strong{display:none}
body .footer-story{display:none}
body .footer-connect{display:block;padding:0;border:0}
body .footer-connect h2{display:none}
body .footer-tagline .footer-slogan{font-size:14px;line-height:1.4;color:var(--ds-yellow)}
body .footer-tagline .footer-services{font-size:13px;color:var(--ds-gray-on-dark)}
body .footer-contact,body .footer-nav{gap:10px;min-width:0}
body .footer-contact p,body .footer-nav p{margin:0 0 12px;color:var(--ds-white);font-size:13px;letter-spacing:.08em}
body .footer-contact a,body .footer-nav a,body .footer-contact span{font-size:13px;line-height:1.5;overflow-wrap:anywhere}
body .footer-connect-links{display:flex;justify-content:flex-start;gap:8px;flex-wrap:wrap;margin-top:24px}
body .footer-connect-links a{width:38px;height:38px;border:1px solid var(--ds-line-dark);border-radius:50%;transition:background-color var(--ds-ease)}
body .footer-connect-links img{width:18px;height:18px}
body .footer-hours-note{font-size:12px;color:var(--ds-gray-on-dark)}
:is(a,button,input,select,textarea):focus-visible{outline:2px solid var(--ds-yellow)!important;outline-offset:3px}
@media(max-width:1100px){:root{--ds-section:68px;--ds-gap:14px;--ds-h1:clamp(46px,6vw,64px);--ds-h2:clamp(32px,4.3vw,42px)}body .photoshoot-album-grid{grid-template-columns:repeat(3,minmax(0,1fr))}body .footer-main{grid-template-columns:minmax(0,1fr) minmax(160px,.7fr)}body .footer-contact{grid-column:1/-1;border-top:1px solid var(--ds-line-dark);padding-top:24px}}
@media(max-width:700px){:root{--ds-section:48px;--ds-gap:12px;--ds-h1:clamp(36px,9vw,46px);--ds-h2:clamp(28px,7vw,34px);--ds-h3:clamp(18px,5vw,22px)}body{font-size:15px}body .hero h1,body .page-hero h1{font-size:var(--ds-h1)!important;max-width:none}body :is(.section-head h2,.cta h2){font-size:var(--ds-h2)!important}body .page-hero{padding-inline:16px;gap:24px}body .photoshoot-album-grid{grid-template-columns:repeat(2,minmax(0,1fr))}body .photoshoot-album-title{min-height:84px;padding:12px}body .photoshoot-album-title strong{font-size:16px}body .makeup-service-grid{grid-template-columns:1fr}body .makeup-service-grid .info-box,body .tour-time-card,body .route-panel{padding:20px}body .footer-main{grid-template-columns:1fr;gap:30px;padding-block:46px}body .footer-contact{grid-column:auto;padding-top:24px}body .footer-nav{border-top:1px solid var(--ds-line-dark);padding-top:24px}body .footer-connect-links{margin-top:18px}body .btn,body .primary,body .secondary{min-width:0}body .mobile-nav.open{max-height:calc(100dvh - 68px);overflow-y:auto}}
@media(max-width:440px){body .photoshoot-album-grid{grid-template-columns:1fr}body .photoshoot-album-card img{aspect-ratio:5/4}body .photoshoot-album-title{min-height:0}body .actions,body .center-actions{align-items:stretch}body .actions .btn,body .center-actions .btn{width:100%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
