:root{--ann-ease:cubic-bezier(.22,1,.36,1)}
.visit{gap:36px}
.visit-map{position:relative;min-width:0;height:340px;border:1px solid #d4d6c9;border-radius:14px;overflow:hidden;background:#e7e9df;box-shadow:0 12px 35px #303d3210}
.visit-map iframe{display:block;width:100%;height:100%;border:0}
.visit-map>a{position:absolute;bottom:16px;right:16px;background:#fffef8;padding:9px 16px;border-radius:6px;box-shadow:0 3px 16px #303d3220;font-size:14px;min-height:44px}
.primary,[data-slot="button"],.choice{position:relative;}
.primary,[data-slot="button"],.choice,.whatsapp{isolation:isolate;transition:transform .28s var(--ann-ease),box-shadow .28s var(--ann-ease),background-color .25s,border-color .25s}
.primary,[data-slot="button"]{overflow:hidden}
.primary::after,[data-slot="button"]::after{content:"";position:absolute;inset:-60% -40%;pointer-events:none;z-index:-1;background:linear-gradient(110deg,transparent 35%,#fff3 50%,transparent 65%);transform:translateX(115%);transition:transform .65s var(--ann-ease)}
.primary svg,.header-cta svg,.theme-title svg{transition:transform .3s var(--ann-ease)}
.header nav a{position:relative;padding-block:7px}
.header nav a::after{content:"";position:absolute;bottom:0;right:0;width:100%;height:2px;background:#b89b61;transform:scaleX(0);transform-origin:right;transition:transform .3s var(--ann-ease)}
.theme-card,.admin-card,.steps>div{transition:transform .45s var(--ann-ease),box-shadow .45s var(--ann-ease)}
.theme-photo{border-radius:10px 10px 4px 4px;transition:border-radius .5s var(--ann-ease),box-shadow .5s var(--ann-ease)}
.field input,.field textarea{transition:border-color .2s,box-shadow .2s}
.field input:focus,.field textarea:focus{outline:none;border-color:#a98b50;box-shadow:0 0 0 3px #c2a26522}
@media(hover:hover) and (pointer:fine){
 .primary:hover,[data-slot="button"]:not(:disabled):hover{transform:translateY(-3px);box-shadow:0 8px 22px #303d321c}
 .primary:hover::after,[data-slot="button"]:hover::after{transform:translateX(-115%)}
 .primary:hover svg,.header-cta:hover svg,.theme-card:hover .theme-title svg{transform:translate(-4px,-3px)}
 .header nav a:hover::after,.header nav a:focus-visible::after{transform:scaleX(1)}
 .choice:not(:disabled):hover{transform:translateY(-2px);border-color:#b89b61;box-shadow:0 5px 16px #303d3210}
 .theme-card:hover{transform:translateY(-6px)}
 .theme-card:hover .theme-photo{border-radius:34px 34px 4px 4px;box-shadow:0 18px 35px #303d3218}
 .admin-card:hover{box-shadow:0 12px 28px #303d3210}
 .whatsapp:hover{transform:translateY(-4px);box-shadow:0 10px 28px #253f3833}
}
.primary:active,[data-slot="button"]:not(:disabled):active,.choice:not(:disabled):active,.whatsapp:active{transform:scale(.975);transition-duration:.12s}
@supports(animation-timeline:view()){
 @media(prefers-reduced-motion:no-preference){
  .theme-card,.story-inner,.steps>div,.visit,.section-heading{animation:ann-reveal linear both;animation-timeline:view();animation-range:entry 0% entry 22%}
  body::before{content:"";position:fixed;z-index:60;top:0;right:0;left:0;height:3px;background:linear-gradient(90deg,#6f806e,#c2a265);transform-origin:right;animation:ann-progress linear both;animation-timeline:scroll()}
 }
}
@keyframes ann-reveal{from{opacity:.25;translate:0 28px}to{opacity:1;translate:0 0}}
@keyframes ann-progress{from{scale:0 1}to{scale:1 1}}
@media(max-width:760px){
 .visit-map{height:290px;width:100%}
 .booking-layout{grid-template-columns:minmax(0,1fr)}
 .booking-form,.booking-form>.panel,.summary{min-width:0}
 .choices{grid-template-columns:repeat(3,minmax(0,1fr))}
 .choice{min-width:0;overflow-wrap:anywhere}
 .date-strip{grid-template-columns:repeat(7,minmax(48px,1fr));overflow-x:auto;max-width:100%;padding-bottom:8px;scrollbar-width:thin;scrollbar-color:#aab69f transparent;overscroll-behavior-inline:contain}
 .day{min-height:64px;overflow-wrap:normal}
 .calendar-nav button{min-width:44px;min-height:44px}
 .slots .slot{min-height:46px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.primary:hover,[data-slot="button"]:hover,.theme-card:hover,.whatsapp:hover{transform:none}}
