.tw-home-hero{background-color:var(--tw-cream);background-position:center;background-repeat:no-repeat;background-size:contain;overflow:hidden;padding:4.5rem 0}
.tw-home-hero-grid{align-items:center;display:grid;gap:3rem;grid-template-columns:1fr 1fr}
.tw-home-hero h1{font-size:clamp(3.5rem,7vw,5.625rem);line-height:1;margin:0 0 1.5rem}
.tw-home-hero .hero-sub{font-size:1.2rem;margin-bottom:2rem;max-width:600px}
.tw-hero-images{min-height:570px;position:relative}
.tw-hero-main{border-radius:50% 50% 0 0;height:560px;margin-left:auto;object-fit:cover;width:min(80%,460px)}
.tw-hero-accent{border:10px solid var(--tw-cream);bottom:10px;height:190px;left:0;object-fit:cover;position:absolute;width:190px}
.tw-media img{box-shadow:var(--tw-shadow);width:100%}
.tw-media .round-image{aspect-ratio:1;box-shadow:none;border-radius:50%;object-fit:cover}
.tw-feature-grid{display:grid;gap:1.5rem;grid-template-columns:repeat(4,1fr)}
.tw-feature-card{display:flex;flex-direction:column;text-align:center}
.tw-feature-card img{aspect-ratio:1;object-fit:cover;width:100%}
.tw-feature-card h3{font-size:1.3rem;margin:1rem 0 0}
.tw-feature-card p{flex:1;margin:.5rem 0 1rem}
.tw-quote{background-attachment:fixed;background-position:center;background-size:cover;color:#fff;padding:10rem 0;text-align:center}
.tw-quote blockquote{font-family:Lora,serif;font-size:clamp(1.5rem,3vw,2rem);margin:auto;max-width:1000px}
.tw-quote cite{color:var(--tw-brown);display:block;font-family:'Mr De Haviland',cursive;font-size:5rem;font-style:normal;line-height:1;margin-top:1.5rem}
.tw-carousel-shell{position:relative}
.tw-carousel{display:grid;gap:1.5rem;grid-auto-columns:minmax(280px,1fr);grid-auto-flow:column;overflow-x:auto;padding:1rem .25rem 2rem;scroll-behavior:smooth;scroll-snap-type:x mandatory;scrollbar-width:thin}
.tw-carousel>*{scroll-snap-align:start}
.testimonial-card{background:rgba(255,255,255,.72);border:1px solid rgba(106,72,60,.18);border-radius:var(--tw-radius);box-sizing:border-box;display:flex;flex-direction:column;height:390px;padding:2rem;text-align:center}
.testimonial-card:before{color:var(--tw-red);content:'“';display:block;font-family:Lora,serif;font-size:4rem;line-height:.8}
.testimonial-card img{border-radius:50%;height:64px;margin:1rem auto .5rem;object-fit:cover;width:64px}
.testimonial-card strong{display:block;color:var(--tw-muted)}
.testimonial-card small{color:var(--tw-muted);display:block;margin-top:.5rem}
.tw-stars{color:var(--tw-red);font-size:1.15rem;letter-spacing:.12em;margin-bottom:.75rem}
.tw-review-preview{margin-bottom:auto}
.tw-review-details{margin-top:.75rem;text-align:left}
.tw-review-details summary{color:var(--tw-red);cursor:pointer;font-size:.85rem;text-align:center}
.tw-review-details p{font-size:.95rem;margin-top:.75rem;max-height:96px;overflow-y:auto;padding-right:.35rem}
.testimonial-card:has(.tw-review-details[open]) .tw-review-preview{display:none}
.tw-review-summary,.tw-review-link{text-align:center}
.tw-service-category-list{display:grid;gap:1rem;margin:2rem 0}
.tw-service-category-list article{background:#fff;border:1px solid rgba(106,72,60,.18);border-radius:var(--tw-radius);padding:1.25rem}
.tw-service-category-list h3{font-size:1.25rem;margin-bottom:.5rem}
.tw-service-category-list p{margin:0;white-space:pre-line}
.tw-catalog-nav{display:flex;flex-wrap:wrap;gap:.65rem;margin:0 0 2rem}
.tw-catalog-nav a,.tw-book-link{background:var(--tw-red);border-radius:999px;color:#fff;display:inline-block;font-weight:600;padding:.35rem .8rem;text-decoration:none}
.tw-catalog-groups{display:grid;gap:2.5rem}
.tw-catalog-group{scroll-margin-top:8rem}
.tw-catalog-group h2{text-align:left}
.tw-service-details{margin-top:.45rem}
.tw-service-details summary{color:var(--tw-red);cursor:pointer;font-size:.85rem}
.tw-service-details p{font-size:.9rem;margin:.6rem 0 0;max-width:780px;white-space:pre-line}
.tw-catalog-note{color:var(--tw-muted);font-size:.9rem;margin-top:2rem}
.tw-service-links{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}
.tw-service-links a{background:#fff;border:1px solid rgba(106,72,60,.25);border-radius:999px;padding:.5rem .85rem;text-decoration:none}
.tw-live-price{font-size:1.2rem}
.tw-carousel-controls{display:flex;gap:.5rem;justify-content:center;margin-top:1rem}
.tw-carousel-controls button{background:var(--tw-red);border:0;border-radius:50%;color:#fff;cursor:pointer;font-size:1.25rem;height:44px;width:44px}
.deal-grid{display:grid;gap:1.5rem;grid-template-columns:repeat(3,1fr)}
.deal-card{border:1px solid var(--tw-brown);border-radius:var(--tw-radius);display:flex;flex-direction:column;padding:clamp(1.5rem,4vw,3.5rem)}
.deal-card h3{font-size:1.5rem;line-height:1.3;margin:0 0 1rem}
.deal-card p{flex:1}
.image-strip{display:grid;gap:1rem;grid-template-columns:repeat(3,1fr)}
.image-strip img{aspect-ratio:4/3;object-fit:cover;width:100%}
.accordion-list{display:grid;gap:.75rem}
.accordion-list details{background:#fff;border:1px solid rgba(106,72,60,.2);border-radius:10px;padding:1rem 1.25rem}
.accordion-list summary{cursor:pointer;font-family:Lora,serif;font-size:1.2rem}
.accordion-list details div{padding-top:1rem}
.gallery-grid{display:grid;gap:1.25rem;grid-template-columns:repeat(4,1fr)}
.gallery-card{background:#fff;border-radius:var(--tw-radius);overflow:hidden}
.gallery-card img{aspect-ratio:4/3;object-fit:cover;width:100%}
.gallery-card div{padding:1rem}
.media-grid{display:grid;gap:1.5rem;grid-template-columns:repeat(2,1fr)}
.video-grid article{display:flex;flex-direction:column}
.video-grid article h3{margin:0 0 .75rem;min-height:2.2em}
.responsive-frame{aspect-ratio:16/9;border:0;width:100%}
.tw-local-video-heading{margin:0 0 .75rem}
.tw-local-video{background:#000;width:100%}
.spec-table,.price-table{border-collapse:collapse;width:100%}
.spec-table th,.spec-table td,.price-table th,.price-table td{border:1px solid rgba(106,72,60,.3);padding:.8rem;text-align:left}
.spec-table th,.price-table th{background:var(--tw-brown);color:#fff}
.price-table th:last-child,.price-table td:last-child{text-align:center}
.price-groups{display:grid;gap:2rem;grid-template-columns:repeat(2,1fr)}
.price-group h2{text-align:left}
.booking-grid{display:grid;gap:2rem;grid-template-columns:1fr 1fr}
.contact-panel{background:#fff;border-radius:var(--tw-radius);box-shadow:var(--tw-shadow);padding:2rem}
.contact-panel h2{font-size:2rem;margin:0 0 1rem}
.map-frame{border:0;height:450px;width:100%}
.policy-copy{max-width:900px}
.policy-copy p+ p{margin-top:1.25rem}
.footer-reveal{background:none;border:0;color:inherit;cursor:pointer;font:inherit;padding:0;text-align:left;text-decoration:underline;text-underline-offset:.2em}
.footer-reveal:hover,.footer-reveal:focus{color:var(--tw-red)}
.footer-reveal[aria-busy="true"]{cursor:progress;opacity:.7}
@media(max-width:1024px){.tw-feature-grid{grid-template-columns:1fr 1fr}.deal-grid{grid-template-columns:1fr}.gallery-grid{grid-template-columns:1fr 1fr}}
@media(max-width:767px){.tw-home-hero-grid{grid-template-columns:1fr}.tw-hero-images{min-height:440px}.tw-hero-main{height:430px}.tw-hero-accent{height:140px;width:140px}.tw-feature-grid,.image-strip,.gallery-grid,.media-grid,.price-groups,.booking-grid{grid-template-columns:1fr}.video-grid article h3{min-height:0}.testimonial-card{height:420px}.tw-quote{background-attachment:scroll;padding:7rem 0}}

/* === FLOATING CART === */
.tw-cart-fab{position:fixed;bottom:24px;right:24px;z-index:2000;width:56px;height:56px;border-radius:50%;background:var(--tw-red);color:#fff;border:0;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.22);display:flex;align-items:center;justify-content:center;transition:transform .2s,box-shadow .2s}
.tw-cart-fab:hover{transform:scale(1.08);box-shadow:0 6px 20px rgba(0,0,0,.28)}
.tw-cart-fab--flash{animation:tw-cart-flash .35s ease}
.tw-cart-fab-icon{font-size:1.6rem;line-height:1}
.tw-cart-fab-badge{position:absolute;top:-5px;right:-5px;background:var(--tw-dark);color:#fff;border-radius:50%;width:22px;height:22px;font-size:.7rem;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1}
.tw-cart-overlay{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:2100;display:none}
.tw-cart-overlay--visible{display:block}
.tw-cart-panel{position:fixed;top:0;right:0;bottom:0;width:100%;max-width:380px;background:#fff;z-index:2200;box-shadow:-4px 0 24px rgba(0,0,0,.15);transform:translateX(100%);transition:transform .25s ease;display:flex;flex-direction:column}
.tw-cart-panel--open{transform:translateX(0)}
.tw-cart-panel-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem;border-bottom:1px solid rgba(106,72,60,.15)}
.tw-cart-panel-header h3{margin:0;font-size:1.15rem}
.tw-cart-panel-close{background:none;border:0;font-size:1.6rem;cursor:pointer;color:var(--tw-muted);line-height:1;padding:0 .25rem}
.tw-cart-panel-items{flex:1;overflow-y:auto;padding:.75rem 1.25rem}
.tw-cart-empty{color:var(--tw-muted);text-align:center;padding:2rem 0}
.tw-cart-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem 0;border-bottom:1px solid rgba(106,72,60,.08)}
.tw-cart-item-info strong{display:block;font-size:.95rem}
.tw-cart-item-info span{display:block;font-size:.8rem;color:var(--tw-muted);margin-top:.15rem}
.tw-cart-item-remove{background:none;border:0;font-size:1.3rem;color:var(--tw-muted);cursor:pointer;padding:0 .25rem;line-height:1;font-weight:700}
.tw-cart-item-remove:hover{color:var(--tw-red)}
.tw-cart-panel-footer{padding:1.25rem;border-top:1px solid rgba(106,72,60,.15);display:flex;flex-direction:column;gap:.65rem}
.tw-cart-clear{background:none;border:0;color:var(--tw-muted);cursor:pointer;font-size:.85rem;text-decoration:underline;padding:0;align-self:flex-start}
.tw-cart-clear:hover{color:var(--tw-red)}
.tw-cart-checkout{display:block;width:100%;background:var(--tw-red);color:#fff;border:0;border-radius:6px;padding:.85rem;font-size:1rem;font-weight:600;cursor:pointer;text-align:center}
.tw-cart-checkout:hover{background:var(--tw-dark)}
.tw-cart-loading{text-align:center;padding:3rem 1rem}
.tw-cart-spinner{width:40px;height:40px;border:4px solid rgba(106,72,60,.15);border-top-color:var(--tw-red);border-radius:50%;margin:0 auto 1rem;animation:tw-cart-spin .7s linear infinite}
.tw-cart-error{text-align:center;padding:2rem 1rem}
.tw-cart-retry{display:inline-block;margin-top:1rem;background:var(--tw-red);color:#fff;border:0;border-radius:6px;padding:.55rem 1.25rem;font-size:.9rem;font-weight:600;cursor:pointer}
@keyframes tw-cart-flash{0%,100%{transform:scale(1)}50%{transform:scale(1.15)}}
@keyframes tw-cart-spin{to{transform:rotate(360deg)}}
