/* Villa Botticelli – theme styles. Colours and fonts come from theme.json. */
:root{
  --vb-ivory:#F3F2E1;--vb-sand:#D9CDBB;--vb-sand-dark:#B8A98F;--vb-brown:#4B3305;--vb-brown-dark:#3A2704;--vb-olive:#68705A;--vb-ink:#302B25;
  --vb-pad-x:clamp(20px,5vw,64px);--vb-pad-y:clamp(64px,9vw,128px);--vb-max:1320px;
  --vb-serif:'Cormorant Garamond',Georgia,serif;
}
html{scroll-behavior:smooth}
body{-webkit-font-smoothing:antialiased}
[id]{scroll-margin-top:96px}
p,h1,h2,h3{text-wrap:pretty}
h1,h2{text-wrap:balance}
.vb-main > .entry-content > *, .vb-main .wp-block-post-content > *{margin-block-start:0;margin-block-end:0}
.wp-block-post-content > .alignfull{margin-left:0!important;margin-right:0!important;max-width:none}

/* ---------- Generic section ---------- */
.vb-section{padding:var(--vb-pad-y) 0;margin:0}
.vb-section.vb-flush-top{padding-top:0}
.vb-section.vb-flush-bottom{padding-bottom:0}
.vb-wrap{max-width:var(--vb-max);margin:0 auto!important;padding:0 var(--vb-pad-x);box-sizing:border-box}
.vb-wrap > *{margin-block-start:0}
.vb-eyebrow{font-size:13px!important;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--vb-olive);margin:0 0 16px!important}
.has-sand-background-color .vb-eyebrow{color:var(--vb-brown)}
.vb-section h2{margin:0 0 24px}
.vb-section p{margin:0 0 20px}
.vb-section p:last-child{margin-bottom:0}
.vb-muted{color:var(--vb-olive)}
.vb-center{max-width:680px;margin:0 auto clamp(48px,6vw,80px)!important;text-align:center}
.vb-center h2{margin-bottom:24px}

/* Buttons */
.wp-block-button.is-style-vb-link .wp-block-button__link{background:none!important;padding:0 0 3px!important;border-radius:0;border-bottom:1px solid currentColor;color:inherit}
.wp-block-button.is-style-vb-link .wp-block-button__link:hover{opacity:.8}
.wp-block-buttons{gap:16px 28px;align-items:center}

/* ---------- Header ---------- */
.vb-header{position:sticky;top:var(--wp-admin--admin-bar--height,0);z-index:50;background:var(--vb-ivory);border-bottom:1px solid var(--vb-sand)}
.vb-header-inner{max-width:var(--vb-max);margin:0 auto;padding:0 var(--vb-pad-x);height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.vb-brand{display:flex;align-items:center;gap:14px;color:var(--vb-brown)!important}
.vb-brand img{height:44px;width:auto;display:block}
.vb-brand span{font-weight:500;font-size:14px;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
.vb-nav{display:flex;align-items:center;gap:26px;font-size:15px;font-weight:500;white-space:nowrap}
.vb-nav a{color:var(--vb-ink)}
.vb-nav a:hover{color:var(--vb-olive)}
.vb-nav a.vb-cta,.vb-mobile a.vb-cta{background:var(--vb-brown);color:var(--vb-ivory);padding:12px 22px;border-radius:2px}
.vb-nav a.vb-cta:hover{background:var(--vb-brown-dark);color:var(--vb-ivory)}
.vb-langs{display:flex;align-items:center;gap:2px}
.vb-langs a{padding:10px 7px;font-size:13px;font-weight:500;letter-spacing:.08em;color:var(--vb-olive)!important}
.vb-langs a.is-current{color:var(--vb-brown)!important;text-decoration:underline;text-underline-offset:5px}
.vb-header-right{display:none;align-items:center;gap:12px}
.vb-burger{background:none;border:0;padding:12px 0;cursor:pointer;display:flex;flex-direction:column;gap:6px}
.vb-burger span{display:block;width:26px;height:1.5px;background:var(--vb-brown)}
.vb-mobile{display:none;flex-direction:column;gap:4px;padding:8px var(--vb-pad-x) 28px;font-size:18px;font-weight:500;border-top:1px solid var(--vb-sand)}
.vb-mobile a{color:var(--vb-ink);padding:12px 0}
.vb-mobile a.vb-cta{margin-top:12px;padding:16px 20px;text-align:center}
.vb-header.is-open .vb-mobile{display:flex}
@media (max-width:1199px){
  .vb-nav{display:none}
  .vb-header-right{display:flex}
}

/* ---------- Hero & evening (cover blocks) ---------- */
.wp-block-cover.vb-hero,.wp-block-cover.vb-evening{padding:0;align-items:flex-end;justify-content:flex-start;overflow:hidden;margin:0}
.wp-block-cover.vb-hero{min-height:calc(100svh - 77px)!important;max-height:980px;background:#302B25 url(../images/hero-poster.jpg) 50% 55%/cover no-repeat}
.wp-block-cover.vb-evening{min-height:clamp(420px,56vw,820px)!important;background:#1D2230 url(../images/evening.jpg) center/cover no-repeat}
.wp-block-cover.vb-hero::after,.wp-block-cover.vb-evening::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(to top,rgba(30,24,16,.62) 0%,rgba(30,24,16,.18) 45%,rgba(30,24,16,0) 70%)}
.wp-block-cover.vb-evening::after{background:linear-gradient(to top,rgba(12,14,22,.62) 0%,rgba(12,14,22,.18) 45%,rgba(12,14,22,0) 70%)}
.wp-block-cover.vb-hero .wp-block-cover__inner-container,.wp-block-cover.vb-evening .wp-block-cover__inner-container{position:relative;z-index:2;width:100%;max-width:var(--vb-max);margin:0 auto;padding:0 var(--vb-pad-x) clamp(40px,7vw,88px);box-sizing:border-box;color:var(--vb-ivory)}
.vb-hero h1,.vb-evening h2{color:var(--vb-ivory)!important;max-width:11em;margin:0 0 24px!important;font-size:clamp(40px,6vw,76px)!important;line-height:1.05}
.vb-hero .vb-eyebrow,.vb-evening .vb-eyebrow{color:var(--vb-ivory);margin-bottom:20px!important}
.vb-hero .vb-lead,.vb-evening .vb-lead{max-width:34em;font-size:clamp(16px,1.4vw,19px);margin:0 0 36px;color:var(--vb-ivory)}
.vb-evening .vb-lead{margin-bottom:0}
.vb-hero .wp-block-button.is-style-vb-link .wp-block-button__link{color:var(--vb-ivory)}
.wp-block-cover.vb-hero .wp-block-cover__video-background,.wp-block-cover.vb-evening .wp-block-cover__video-background{z-index:0;transition:opacity 1.2s ease}
.vb-js .wp-block-cover.vb-hero .wp-block-cover__video-background,.vb-js .wp-block-cover.vb-evening .wp-block-cover__video-background{opacity:0}
.vb-js .wp-block-cover .wp-block-cover__video-background.is-playing{opacity:1}
.vb-hero.vb-hero-day .wp-block-cover__video-background{object-position:50% 100%;transform:scale(1.12);transform-origin:50% 92%;filter:saturate(.8) sepia(.14) contrast(1.05) brightness(1.03) blur(.35px)}
.vb-evening .wp-block-cover__video-background{transform:scale(1.08)}
.wp-block-cover.vb-hero .wp-block-cover__background,.wp-block-cover.vb-evening .wp-block-cover__background{display:none}

/* ---------- Intro & stats ---------- */
.vb-intro-head{display:flex;flex-wrap:wrap;gap:32px clamp(40px,8vw,120px);align-items:flex-start}
.vb-intro-head > h2{flex:1 1 320px;margin:0!important}
.vb-intro-head > .wp-block-group{flex:1.2 1 380px;max-width:620px}
.vb-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr));margin-top:clamp(56px,7vw,96px)!important;border-top:1px solid var(--vb-sand)}
.vb-stats > .wp-block-group{padding:28px 24px 0 0;margin:0!important}
.vb-stat-num{font-family:var(--vb-serif);font-size:40px!important;line-height:1.1;color:var(--vb-brown);margin:0!important}
.vb-stat-label{font-size:13px!important;font-weight:500;letter-spacing:.16em;text-transform:uppercase;margin:10px 0 0!important}

/* ---------- Images ---------- */
.vb-section .wp-block-image{margin:0}
.vb-section .wp-block-image img{display:block;width:100%;height:auto}
.vb-wide img{aspect-ratio:16/8;object-fit:cover;object-position:50% 22%}
.vb-portrait img{aspect-ratio:4/5;object-fit:cover}
.wp-block-image.vb-fill{position:relative;min-height:340px;overflow:hidden}
.wp-block-image.vb-fill img{position:absolute;inset:0;width:100%;height:100%!important;object-fit:cover;object-position:40% 45%}

/* ---------- Split layouts ---------- */
.vb-split{display:flex;flex-wrap:wrap;gap:48px clamp(40px,7vw,104px);align-items:center}
.vb-split > *{flex:1 1 300px;margin:0!important;min-width:0}
.vb-split > .wp-block-group{max-width:560px}
.vb-split.vb-stretch{align-items:stretch}
.vb-split > .vb-grow{flex:1.6 1 300px;max-width:none}
.vb-split.vb-center-v > .wp-block-group{align-self:center}

/* Villa overview list */
.vb-index{border-top:1px solid var(--vb-sand)}
.vb-index-item{display:grid;grid-template-columns:48px 1fr;gap:4px 12px;padding:20px 0;border-bottom:1px solid var(--vb-sand);margin:0!important}
.vb-index-item > *{margin:0!important}
.vb-index-item .vb-num{grid-row:span 2}
.vb-num{font-family:var(--vb-serif);font-size:22px!important;color:var(--vb-brown);line-height:1.3}
.vb-index-title{font-weight:500}
.vb-index-title a{color:var(--vb-ink)}
.vb-index-text{font-size:15px!important;color:var(--vb-olive)}

/* Buildings */
.vb-buildings{margin-top:clamp(80px,10vw,144px)!important;display:flex;flex-direction:column;gap:clamp(64px,8vw,112px)}
.vb-building{padding-top:clamp(48px,6vw,72px);border-top:1px solid var(--vb-sand);margin:0!important}
.vb-building-head{display:flex;flex-wrap:wrap;gap:28px clamp(40px,7vw,104px);align-items:center;margin:0 0 clamp(32px,4vw,48px)!important}
.vb-building-head > .wp-block-group{flex:1.4 1 380px;max-width:640px;margin:0!important}
.vb-building-head .vb-num{color:var(--vb-olive);margin:0 0 8px!important}
.vb-building-head h3{margin:0 0 20px!important}
.vb-building-head > .vb-chips{flex:1 1 260px;max-width:420px;align-content:center}

/* Chips (list block) */
ul.vb-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
ul.vb-chips li{font-size:14px;font-weight:500;padding:9px 16px;background:var(--vb-sand);color:var(--vb-brown);border-radius:2px;margin:0}
ul.vb-chips.vb-chips-outline li{background:none;border:1px solid var(--vb-brown);padding:8px 14px}

/* Carousel (gallery block with class vb-carousel) */
.wp-block-gallery.vb-carousel{display:flex!important;flex-wrap:nowrap!important;gap:16px!important;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;margin:0!important}
.wp-block-gallery.vb-carousel::-webkit-scrollbar{display:none}
.wp-block-gallery.vb-carousel > figure.wp-block-image{flex:0 0 min(62%,760px)!important;width:auto!important;max-width:none!important;height:clamp(280px,34vw,520px);scroll-snap-align:start;margin:0!important}
.wp-block-gallery.vb-carousel > figure.wp-block-image img{width:100%!important;height:100%!important;object-fit:cover}
.wp-block-gallery.vb-carousel > figure figcaption{display:none}
@media (max-width:700px){.wp-block-gallery.vb-carousel > figure.wp-block-image{flex-basis:86%!important}}
.vb-car-controls{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px}
.vb-car-count{font-size:14px;font-weight:500;color:var(--vb-olive);letter-spacing:.08em}
.vb-car-btns{display:flex;gap:8px}
.vb-car-btns button{width:44px;height:44px;border:1px solid var(--vb-sand-dark);background:transparent;color:var(--vb-brown);font-size:18px;cursor:pointer;border-radius:2px;display:flex;align-items:center;justify-content:center;font-family:inherit}
.vb-car-btns button:hover{border-color:var(--vb-brown);background:var(--vb-ivory)}

/* Pergola duo & story duo */
.vb-duo{display:flex;flex-wrap:wrap;gap:16px}
.vb-duo > figure{flex:1 1 300px;margin:0!important}
.vb-duo > figure.vb-duo-main{flex:2 1 520px}
.vb-duo.vb-duo-tall img{height:clamp(340px,44vw,640px)!important;object-fit:cover;object-position:50% 60%}
.vb-duo figcaption{margin-top:12px;text-align:left}
.vb-story-duo{margin-top:clamp(56px,7vw,96px)!important}

/* Location */
.vb-loc-head{display:flex;flex-wrap:wrap;gap:24px clamp(32px,4vw,56px);align-items:flex-start;max-width:1120px;margin:0 auto clamp(40px,5vw,64px)!important}
.vb-loc-head > .wp-block-group:first-child{flex:1 1 280px}
.vb-loc-head > .wp-block-group:last-child{flex:1.8 1 440px;min-width:0}
.vb-loc-head h2{margin:0!important}
.vb-loc-row{display:flex;flex-wrap:wrap;gap:24px clamp(32px,4vw,56px);align-items:stretch;max-width:1120px;margin:0 auto!important}
.vb-loc-row > .wp-block-image{flex:1.8 1 440px;min-width:0;margin:0!important;box-shadow:0 8px 32px rgba(48,43,37,.10)}
.vb-loc-row > .wp-block-image img{width:100%;height:auto;display:block}
.vb-times-card{flex:1 1 280px;max-width:360px;background:var(--vb-ivory);padding:24px 24px 20px;margin:0!important;box-sizing:border-box}
.vb-times{margin:0!important}
.vb-times table{width:100%;border-collapse:collapse;font-size:16px}
.vb-times th,.vb-times td{border:0;border-bottom:1px solid var(--vb-sand);padding:10px 0;text-align:left;background:none}
.vb-times thead th{font-size:13px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--vb-brown);border-bottom:1px solid var(--vb-brown);padding:0 0 12px}
.vb-times th:last-child,.vb-times td:last-child{text-align:right;color:var(--vb-brown);white-space:nowrap}
.vb-times thead,.vb-times tfoot{border:0}
.vb-maps-link{margin-top:20px!important;font-size:14px!important;font-weight:500}
.vb-maps-link a{border-bottom:1px solid var(--vb-brown);padding-bottom:2px}

/* Story */
.vb-medallion img{height:96px!important;width:auto!important}
.vb-medallion{margin:0 0 32px!important}

/* Rates */
.vb-rates{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:24px 40px;padding:28px 0;border-top:1px solid var(--vb-brown);border-bottom:1px solid var(--vb-sand-dark);margin:clamp(40px,5vw,64px) 0!important}
.vb-rates > *{margin:0!important}
.vb-rates p{margin:0!important;font-size:15px}
.vb-rates .vb-rate-num{font-family:var(--vb-serif);font-size:36px!important;line-height:1.1;color:var(--vb-brown);margin-bottom:6px!important}
.vb-rates .vb-eyebrow{color:var(--vb-brown);margin-bottom:8px!important}
.vb-rates > p{align-self:center}
.vb-enquire-head{max-width:640px}

/* Instagram */
.vb-insta-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:12px 24px;margin-bottom:24px!important}
.vb-insta-head > *{margin:0!important}
.vb-insta-handle{font-family:var(--vb-serif);font-size:clamp(24px,2.4vw,32px)!important;color:var(--vb-brown)}
.vb-insta-head .vb-eyebrow{margin:0 16px 0 0!important;display:inline}
.vb-insta-follow a{font-size:15px;font-weight:500;border-bottom:1px solid var(--vb-brown);padding-bottom:3px}
.wp-block-gallery.vb-insta{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(min(100%,150px),1fr));gap:8px!important;margin:0!important}
.wp-block-gallery.vb-insta > figure.wp-block-image{width:100%!important;margin:0!important;aspect-ratio:1/1;overflow:hidden;background:#E7E1CC}
.wp-block-gallery.vb-insta > figure.wp-block-image img{width:100%!important;height:100%!important;object-fit:cover;transition:transform .8s ease,opacity .4s ease}
.wp-block-gallery.vb-insta > figure.wp-block-image:hover img{transform:scale(1.04);opacity:.9}

/* ---------- Footer ---------- */
.vb-footer{max-width:var(--vb-max);margin:0 auto;padding:clamp(64px,8vw,112px) var(--vb-pad-x) 40px;display:flex;flex-direction:column;align-items:center;gap:40px;text-align:center;box-sizing:border-box}
.vb-footer > *{margin:0!important}
.vb-footer-logo img{width:180px;height:auto;display:block}
.vb-footer-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 32px;font-size:15px;font-weight:500}
.vb-footer-bottom{width:100%;border-top:1px solid var(--vb-sand);padding-top:24px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;font-size:14px}
.vb-footer-bottom > *{margin:0!important}
.vb-footer-links{display:flex;align-items:center;gap:24px}

/* ---------- Enquiry widget ---------- */
.vb-enq{display:flex;flex-wrap:wrap;gap:40px clamp(32px,5vw,72px);align-items:flex-start}
.vb-cal{flex:1 1 420px;background:var(--vb-ivory);padding:clamp(20px,3vw,36px);box-sizing:border-box;min-width:0}
.vb-cal-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}
.vb-cal-title{font-size:13px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--vb-brown)}
.vb-cal-nav{display:flex;gap:8px}
.vb-cal-nav button{width:40px;height:40px;border:1px solid var(--vb-sand);background:transparent;color:var(--vb-brown);cursor:pointer;font-size:18px;border-radius:2px;font-family:inherit}
.vb-cal-nav button:hover{border-color:var(--vb-brown)}
.vb-cal-nav button:disabled{opacity:.35;cursor:default}
.vb-months{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:32px}
.vb-month-name{font-family:var(--vb-serif);font-size:24px;color:var(--vb-brown);margin-bottom:12px}
.vb-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.vb-wd{font-size:12px;font-weight:500;text-align:center;color:var(--vb-olive);padding:6px 0}
.vb-day{height:40px;border:0;border-radius:2px;font-size:15px;font-family:inherit;background:transparent;color:var(--vb-ink);cursor:pointer;padding:0}
.vb-day:hover:not(:disabled){outline:1px solid var(--vb-brown)}
.vb-day:disabled{cursor:default}
.vb-day.is-past,.vb-day.is-blocked{color:rgba(48,43,37,.3)}
.vb-day.is-booked{background:repeating-linear-gradient(135deg,var(--vb-sand) 0 3px,var(--vb-ivory) 3px 6px);text-decoration:line-through;color:rgba(48,43,37,.5)}
.vb-day.is-range{background:var(--vb-sand)}
.vb-day.is-sel{background:var(--vb-brown);color:var(--vb-ivory)}
.vb-legend{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:24px;padding-top:20px;border-top:1px solid var(--vb-sand);font-size:14px}
.vb-legend span{display:flex;align-items:center;gap:8px}
.vb-legend i{width:14px;height:14px;display:inline-block}
.vb-legend .l-av{border:1px solid var(--vb-sand);background:var(--vb-ivory);box-sizing:border-box}
.vb-legend .l-bk{background:repeating-linear-gradient(135deg,var(--vb-sand) 0 3px,var(--vb-ivory) 3px 6px)}
.vb-legend .l-sel{background:var(--vb-brown)}
.vb-cal-hint{font-size:14px;margin:16px 0 0}
.vb-form-wrap{flex:1 1 440px;min-width:0}
.vb-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:20px;max-width:760px}
.vb-form label,.vb-form .vb-field{display:flex;flex-direction:column;gap:8px;font-size:14px;font-weight:500}
.vb-form .vb-full{grid-column:1/-1}
.vb-form input,.vb-form textarea{height:52px;padding:0 14px;border:1px solid var(--vb-sand-dark);background:var(--vb-ivory);color:var(--vb-ink);font-size:16px;border-radius:2px;font-family:inherit;box-sizing:border-box;width:100%}
.vb-form textarea{height:auto;padding:14px;line-height:1.5;resize:vertical}
.vb-form input:focus,.vb-form textarea:focus{outline:2px solid var(--vb-brown);outline-offset:1px}
.vb-form .has-error input{border-color:#8A2E12}
.vb-err{font-weight:400;color:#8A2E12;font-size:14px}
.vb-err:empty{display:none}
.vb-stepper{display:flex;align-items:center;justify-content:space-between;height:52px;border:1px solid var(--vb-sand-dark);background:var(--vb-ivory);border-radius:2px}
.vb-stepper button{width:52px;height:50px;border:0;background:none;font-size:20px;color:var(--vb-brown);cursor:pointer;font-family:inherit}
.vb-stepper output{font-size:16px;font-weight:400}
.vb-note{font-size:14px;font-weight:400;margin-top:-8px}
.vb-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.vb-submit-row{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px;margin-top:8px}
.vb-submit{background:var(--vb-brown);color:var(--vb-ivory);padding:18px 32px;font-size:15px;font-weight:500;border:0;border-radius:2px;cursor:pointer;font-family:inherit}
.vb-submit:hover{background:var(--vb-brown-dark)}
.vb-submit:disabled{opacity:.6;cursor:wait}
.vb-thanks{background:var(--vb-ivory);padding:clamp(28px,4vw,48px)}
.vb-thanks img{height:64px;width:auto;display:block;margin-bottom:24px}
.vb-thanks h3{font-size:34px!important;margin:0 0 16px!important}
.vb-thanks button{background:none;border:0;padding:0 0 3px;border-bottom:1px solid var(--vb-brown);color:var(--vb-brown);font-size:15px;font-weight:500;cursor:pointer;font-family:inherit}
.vb-form-error{grid-column:1/-1;background:#F6E7E0;color:#8A2E12;padding:12px 16px;font-size:15px}
.vb-form-error:empty{display:none}

/* ---------- Scroll reveal (front end only) ---------- */
.vb-js .vb-reveal{opacity:0;transform:translateY(28px);transition:opacity 1.1s ease,transform 1.1s cubic-bezier(.2,.6,.2,1)}
.vb-js .vb-reveal.is-visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .vb-js .vb-reveal{opacity:1;transform:none;transition:none}
}

/* Simple pages (privacy etc.) */
.vb-page{padding-top:clamp(48px,7vw,96px);padding-bottom:clamp(48px,7vw,96px)}
