/* Four deliberate viewport states, layered over the validated art direction. */
.site-header,.section,.detail-hero,.sologne-copy,.story-prose{min-width:0}
:focus-visible{outline:3px solid #ad4c2e;outline-offset:4px}
.hero-message :focus-visible,.cta :focus-visible{outline-color:#fff}
.will-reveal{transform:translateY(8px);transition:opacity .4s ease,transform .4s ease}
.will-reveal.is-visible{transform:none}
@media(min-width:1440px){
 .site-header nav{gap:clamp(20px,1.8vw,30px)}
 .home .concept-intro{max-width:910px}
}
@media(min-width:1024px) and (max-width:1439px){
 .site-header{padding-inline:3%;gap:16px}
 .site-logo{width:clamp(200px,19vw,260px)}
 .site-header nav{gap:clamp(12px,1.4vw,20px)}
 .site-header nav a{font-size:13px}
 .header-book{min-width:100px;margin-left:0;padding-inline:20px}
 .home .gite-universes{gap:clamp(84px,10vw,144px)}
 .home .linking-eucalyptus{width:clamp(190px,18vw,245px);height:360px}
}
@media(max-width:1023px){
 .site-header{height:88px;padding-inline:5%;gap:14px}
 .site-logo{width:230px;height:84px;margin-right:auto}
 .site-header nav{display:none;position:absolute;left:0;right:0;top:88px;margin:0;padding:18px 6%;background:var(--cream);border-bottom:1px solid var(--line);max-height:calc(100dvh - 88px);overflow-y:auto}
 .site-header nav.open{display:flex;flex-direction:column;align-items:stretch;gap:2px}
 .site-header nav a{font-size:16px;min-height:48px;padding:12px 0}
 .menu{display:block;border:0;border-bottom:1px solid var(--green);background:none;padding:10px 4px;color:var(--green);font-size:14px;min-height:44px}
 .menu span{font-size:17px;margin-left:5px}
 .header-book{min-width:100px;margin-left:0}
}
@media(min-width:768px) and (max-width:1023px){
 .hero-message{padding:65px 6% 45px}
 .hero-message h1{font-size:clamp(50px,6vw,60px);max-width:650px}
 .hero-message>p{max-width:430px}
 .home .gite-universes{flex-direction:column;gap:32px;max-width:760px;margin-inline:auto}
 .home .gite-universe{width:100%}
 .home .linking-eucalyptus{display:none}
 .home .photo-composition{height:420px}
 .home .universe-copy>p:not(.eyebrow){font-size:16px;max-width:650px}
 .sologne-photo{width:43%;min-height:470px}
 .sologne-copy{width:57%;padding:36px 5%}
 .sologne-copy h2{font-size:38px}
 .sologne-copy>p:not(.eyebrow){font-size:16px}
 .sologne-handwritten{display:none}
 .gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
 .gallery-item img{height:300px}
 .story-page .hospitality-story{grid-template-columns:minmax(0,1fr)}
 .story-page .story-prose{width:100%;max-width:760px}
}
@media(max-width:767px){
 html{scroll-padding-top:96px}
 .site-header{height:82px;padding-inline:4%;gap:10px}
 .site-logo{width:clamp(140px,43vw,210px);height:76px}
 .site-header nav{top:82px;max-height:calc(100dvh - 82px)}
 .menu{font-size:0;padding:8px 3px;border:0;min-width:28px}
 .menu span{font-size:22px;margin:0}
 .header-book{min-width:0;min-height:44px;padding:10px 15px;font-size:13px}
 .hospitality-hero{height:calc(100svh - 82px);min-height:490px;max-height:650px}
 .hero-photo{object-position:60% center}
 .hero-message{padding:40px 7% 34px;justify-content:flex-end}
 .hero-message h1{font-size:clamp(40px,7.5vw,54px);line-height:1.05;max-width:540px;margin-bottom:20px}
 .hero-message>p{font-size:16px;line-height:1.65;max-width:400px;margin-bottom:23px}
 .hero-values{font-size:10px;letter-spacing:.13em;gap:12px;margin-top:26px}
 .hero-handwritten,.concept-eucalyptus,.linking-eucalyptus,.sologne-handwritten,.story-eucalyptus{display:none!important}
 .home .gite-universes{flex-direction:column;gap:28px}
 .home .universe-copy>p:not(.eyebrow){font-size:16px}
 .home .photo-composition{height:clamp(290px,62vw,400px)}
 .sologne-section{flex-direction:column}
 .sologne-photo{width:100%;height:clamp(260px,60vw,380px);min-height:0}
 .sologne-copy{width:100%;padding:34px 7%}
 .sologne-copy>p:not(.eyebrow),.story-prose{font-size:16px}
 .hospitality-story,.story-page .hospitality-story{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}
 .hospitality-story>div:first-child,.story-prose{width:100%}
 .assets-bar ul{flex-wrap:wrap;gap:18px 12px}
 .assets-bar li{flex-basis:calc(50% - 6px);border:0;padding:0!important;justify-content:flex-start;font-size:13px}
 .assets-bar li:last-child{flex-basis:100%;justify-content:center}
 .detail-hero,.verger-page .detail-hero{flex-direction:column;gap:28px;padding:32px 7%}
 .detail-hero>div,.verger-page .detail-hero>div,.detail-hero>.detail-photo,.verger-page .detail-hero>.detail-photo{width:100%}
 .detail-photo>img{height:auto;max-height:none}
 .detail-hero h1{font-size:52px}
 .detail-copy,.practical,.local-cards{flex-direction:column;gap:24px}
 .detail-copy>h2,.detail-copy>div,.practical>div{width:100%}
 .gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 14px}
 .gallery-item img{height:clamp(180px,42vw,280px)}
 .gallery-item span{font-size:14px}
 .booking-options{flex-direction:column;gap:32px}
 .booking-options article{width:100%}
 .starting-rates{flex-direction:column;gap:0}
 .booking-actions{flex-direction:column;gap:12px}
 .footer-inner{flex-wrap:wrap}
 .footer-inner>div:first-child{width:100%}
 .footer-inner>div:not(:first-child){flex:1;min-width:120px}
 .footer-bottom{flex-direction:column}
}
@media(max-width:370px){.site-logo{width:140px}.site-header{gap:6px}.header-book{padding-inline:12px}.gallery{grid-template-columns:minmax(0,1fr)}.gallery-item img{height:360px}}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 *,*::before,*::after{animation:none!important;transition:none!important}
 .will-reveal,.will-reveal.is-visible{opacity:1;transform:none}
}
/* Destination pages follow the same tablet/phone breakpoints. */
@media(min-width:768px) and (max-width:1023px){
 .guide-grid.three,.guide-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}
 .theme-nav{display:flex;overflow-x:auto;gap:10px}
 .theme-nav a{min-width:115px;flex-shrink:0}
 .guide-map-section{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:767px){
 .guide-hero-copy h1{font-size:clamp(42px,7vw,52px)}
 .guide-grid.two,.guide-grid.three,.guide-grid.four,.guide-grid.far{grid-template-columns:minmax(0,1fr)}
 .walking-section,.market-note,.guide-practical,.guide-map-section,.equestrian-section{grid-template-columns:minmax(0,1fr)}
 .market-note>.guide-link{grid-column:auto}
 .guide-card p,.guide-heading>p:last-child:not(.eyebrow),.guide-practical p{font-size:16px}
 .review-heading{flex-direction:column;align-items:flex-start;gap:12px}
}

.booking-lodging-title{font-size:38px}
