/*
Theme Name: Luciano Valletta
Theme URI: https://vallettaboutique.com
Author: Cleverhog
Description: Block theme for Luciano Valletta Boutique Accommodation, built on Twenty Twenty-Five. Works on its own as a brochure site with email and phone enquiries, and adds online booking when the Stayline Bookings plugin is active.
Template: twentytwentyfive
Version: 1.2.0
Requires at least: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: luciano-valletta
*/

/* ---------- base ---------- */
:root{--v-ease:cubic-bezier(.22,1,.36,1);--v-shadow:0 20px 50px -24px rgba(28,38,51,.35)}
body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3,.has-serif-font-family{letter-spacing:-.01em}
.v-eyebrow{font-family:var(--wp--preset--font-family--sans);font-size:.75rem!important;text-transform:uppercase;letter-spacing:.22em;font-weight:600;color:var(--wp--preset--color--gold)}
.v-eyebrow.is-light{color:var(--wp--preset--color--sand)}
.v-lead{font-size:1.2rem;line-height:1.65;color:var(--wp--preset--color--body)}
a{transition:color .25s var(--v-ease)}
.wp-block-button__link{transition:transform .25s var(--v-ease),box-shadow .25s var(--v-ease),background-color .25s var(--v-ease)}
.wp-block-button__link:hover{transform:translateY(-2px);box-shadow:0 12px 24px -12px rgba(31,58,95,.6)}
.wp-block-button.is-style-outline .wp-block-button__link{border:1.5px solid currentColor}
.is-style-text-link .wp-block-button__link{background:none;padding:0;color:var(--wp--preset--color--navy);text-transform:uppercase;letter-spacing:.14em;font-size:.8rem;font-weight:600;border-bottom:1px solid currentColor;border-radius:0}

/* ---------- header ---------- */
.v-header{position:absolute;top:0;left:0;right:0;z-index:40;transition:background-color .35s var(--v-ease),box-shadow .35s var(--v-ease),padding .35s var(--v-ease)}
.v-header .wp-block-site-title a,.v-header .wp-block-navigation a{color:#fff;text-decoration:none}
.v-header .wp-block-navigation a{font-size:.85rem;text-transform:uppercase;letter-spacing:.14em;font-weight:500;position:relative;padding-bottom:4px}
.v-header .wp-block-navigation a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s var(--v-ease)}
.v-header .wp-block-navigation a:hover::after,.v-header .wp-block-navigation .current-menu-item>a::after{transform:scaleX(1)}
.v-header .wp-block-navigation__responsive-container-open{color:#fff}
.v-header.is-scrolled,body:not(.home) .v-header{position:fixed;background:rgba(251,248,242,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 1px 0 rgba(28,38,51,.08)}
.v-header.is-scrolled .wp-block-site-title a,.v-header.is-scrolled .wp-block-navigation a,.v-header.is-scrolled .wp-block-navigation__responsive-container-open,body:not(.home) .v-header .wp-block-site-title a,body:not(.home) .v-header .wp-block-navigation a,body:not(.home) .v-header .wp-block-navigation__responsive-container-open{color:var(--wp--preset--color--ink)}
.v-header .wp-block-navigation__responsive-container.is-menu-open{background:var(--wp--preset--color--ink)}
.v-header .wp-block-navigation__responsive-container.is-menu-open a{color:#fff;font-size:1.4rem;letter-spacing:.08em}
.v-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close{color:#fff}
body:not(.home) .v-page-top{padding-top:7rem}
.v-header .wp-block-site-title{font-family:var(--wp--preset--font-family--serif);font-weight:600;letter-spacing:.02em;font-size:1.35rem}

/* ---------- hero ---------- */
body.home .wp-site-blocks{padding-top:0}
body.home .wp-site-blocks>main{margin-top:0}
.v-hero.alignfull{margin-top:0!important}
/* The hero must not clip its content: the booking search's date picker drops below it. It sits above the following sections (z-index). */
.v-hero{position:relative;min-height:min(92vh,900px);display:flex;align-items:flex-end;overflow:visible!important;isolation:isolate;z-index:5}
/* Ken Burns zoom without overflow:hidden on the hero: the image clips itself to the hero box.
   For scale s around origin (60%,40%), the box edges sit at these insets of the image: top/right 40%·(1-1/s), bottom/left 60%·(1-1/s). */
@property --v-kb{syntax:'<number>';inherits:false;initial-value:1}
.v-hero .wp-block-cover__image-background{--v-kb:1;animation:v-kenburns 24s ease-out both;transform-origin:60% 40%;transform:scale(var(--v-kb));clip-path:inset(calc(40% * (1 - 1 / var(--v-kb))) calc(40% * (1 - 1 / var(--v-kb))) calc(60% * (1 - 1 / var(--v-kb))) calc(60% * (1 - 1 / var(--v-kb))))}
@keyframes v-kenburns{from{--v-kb:1.12}to{--v-kb:1}}
.v-hero .wp-block-cover__background{background:linear-gradient(180deg,rgba(28,38,51,.35) 0%,rgba(28,38,51,.15) 35%,rgba(28,38,51,.75) 100%)!important;opacity:1!important}
.v-hero .wp-block-cover__inner-container{width:100%;padding-bottom:3rem}
.v-hero h1{color:#fff;font-size:clamp(2.6rem,6vw,5rem);line-height:1.02;max-width:14ch;margin:0 0 1rem;text-wrap:balance}
.v-hero p{color:rgba(255,255,255,.88);max-width:46ch;font-size:1.1rem}
.v-hero .v-eyebrow{color:var(--wp--preset--color--sand)}
.v-hero-content>*{opacity:0;transform:translateY(24px);animation:v-rise .9s var(--v-ease) forwards}
.v-hero-content>*:nth-child(1){animation-delay:.15s}.v-hero-content>*:nth-child(2){animation-delay:.3s}.v-hero-content>*:nth-child(3){animation-delay:.45s}.v-hero-content>*:nth-child(4){animation-delay:.6s}
@keyframes v-rise{to{opacity:1;transform:none}}
.v-hero-search{margin-top:2rem}
.v-hero-search .stayline-search{box-shadow:0 30px 60px -20px rgba(0,0,0,.45);border:none;padding:1.1rem}
.v-scroll-cue{position:absolute;right:2rem;bottom:2rem;width:1px;height:64px;background:rgba(255,255,255,.4);overflow:hidden}
.v-scroll-cue::after{content:"";position:absolute;left:0;top:-100%;width:100%;height:100%;background:#fff;animation:v-cue 2.2s ease-in-out infinite}
@keyframes v-cue{0%{top:-100%}60%,100%{top:100%}}

/* ---------- sections ---------- */
.v-section{padding-block:clamp(4rem,9vw,7.5rem)}
.v-section-tight{padding-block:clamp(3rem,6vw,5rem)}
.v-title{font-size:clamp(2rem,4vw,3.1rem);line-height:1.08;margin:0 0 1rem;text-wrap:balance}
.v-rule{width:56px;height:2px;background:var(--wp--preset--color--gold);margin:1.25rem 0}
.v-card{position:relative;overflow:hidden;border-radius:4px;background:#fff;box-shadow:var(--v-shadow);transition:transform .45s var(--v-ease),box-shadow .45s var(--v-ease)}
.v-card:hover{transform:translateY(-6px);box-shadow:0 30px 60px -24px rgba(28,38,51,.45)}
.v-card .wp-block-image{margin:0;overflow:hidden}
.v-card .wp-block-image a{display:block}
.v-card .wp-block-image img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;transition:transform 1.2s var(--v-ease)}
.v-card:hover .wp-block-image img{transform:scale(1.06)}
.v-card__body{padding:1.5rem 1.6rem 1.75rem}
.v-card__body h3{margin:.25rem 0 .35rem;font-size:1.45rem}
.v-card__body p{margin:0 0 1rem;color:var(--wp--preset--color--body);font-size:.98rem}
.v-card a.v-more{text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;font-weight:600;color:var(--wp--preset--color--navy);text-decoration:none;display:inline-flex;align-items:center;gap:.5rem}
.v-card a.v-more::after{content:"→";transition:transform .3s var(--v-ease)}
.v-card:hover a.v-more::after{transform:translateX(4px)}
.v-feature{padding:2rem 1.75rem;border-top:2px solid var(--wp--preset--color--gold);background:rgba(255,255,255,.6)}
.v-feature .v-num{font-family:var(--wp--preset--font-family--serif);font-size:2.6rem;line-height:1;color:var(--wp--preset--color--gold);margin-bottom:.75rem}
.v-feature h3{font-size:1.25rem;margin:0 0 .5rem}
.v-feature p{margin:0;color:var(--wp--preset--color--body)}
.v-band{background:var(--wp--preset--color--ink);color:#fff}
.v-band h2,.v-band p{color:#fff}
.v-band p{color:rgba(255,255,255,.78)}
.v-band .v-eyebrow{color:var(--wp--preset--color--sand)}
.v-band .wp-block-button__link{background:var(--wp--preset--color--gold);color:#fff}
.v-quote{font-family:var(--wp--preset--font-family--serif);font-size:clamp(1.5rem,3vw,2.2rem);line-height:1.3;font-style:italic;color:var(--wp--preset--color--ink);text-wrap:balance}
.v-img-tall{overflow:hidden;border-radius:4px}
.v-img-tall img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/5;transition:transform 1.4s var(--v-ease)}
.v-img-tall:hover img{transform:scale(1.04)}
.v-contact dl{display:grid;gap:1rem 0}
.v-contact dt{font-weight:600;color:var(--wp--preset--color--ink)}
.v-contact dd{margin:0;color:var(--wp--preset--color--body)}

/* ---------- plugin tweaks inside this theme ---------- */
.stayline{--sl-font:var(--wp--preset--font-family--sans);--sl-radius:4px}
.stayline .stayline-room__title,.stayline .stayline-room-card__title,.stayline .stayline-summary__room strong,.stayline-property-group__title{font-family:var(--wp--preset--font-family--serif)}
.stayline-property-group__title{font-size:1.7em}
.stayline-property-group{margin-top:3rem}
.stayline-room-card,.stayline-room{box-shadow:var(--v-shadow);transition:transform .45s var(--v-ease),box-shadow .45s var(--v-ease)}
.stayline-room-card:hover{transform:translateY(-6px)}
.stayline-room-card__media{overflow:hidden}
.stayline-room-card__media img{transition:transform 1.2s var(--v-ease)}
.stayline-room-card:hover .stayline-room-card__media img{transform:scale(1.06)}

/* ---------- footer ---------- */
.v-footer{background:var(--wp--preset--color--ink);color:rgba(255,255,255,.75)}
.v-footer a{color:#fff;text-decoration:none}
.v-footer a:hover{color:var(--wp--preset--color--sand)}
.v-footer h2,.v-footer h3{color:#fff}
.v-footer .wp-block-site-title a{font-family:var(--wp--preset--font-family--serif);font-size:1.6rem}
.v-footer small{color:rgba(255,255,255,.5)}
.v-footer .wp-block-navigation a{font-size:.9rem}

/* ---------- scroll reveal ---------- */
.v-reveal{opacity:0;transform:translateY(28px);transition:opacity .9s var(--v-ease),transform .9s var(--v-ease);transition-delay:calc(var(--i,0)*90ms)}
.v-reveal.is-visible{opacity:1;transform:none}
.v-reveal.is-visible .v-card,.v-reveal.is-visible .v-feature{animation:none}
@media (prefers-reduced-motion:reduce){.v-reveal,.v-hero-content>*{opacity:1;transform:none;transition:none;animation:none}.v-hero .wp-block-cover__image-background{animation:none}.v-scroll-cue{display:none}*{transition-duration:.01ms!important}}
@media (max-width:781px){.v-hero{min-height:88vh}.v-hero .wp-block-cover__inner-container{padding-bottom:2rem}.v-scroll-cue{display:none}.v-section{padding-block:3.5rem}}

/* page header rule aligns with the left-aligned title */
.v-page-top>.v-rule{margin-left:max(0px,calc((100% - 1240px) / 2))!important;margin-right:auto!important}
.v-page-top .v-title{margin-bottom:0}

/* ---------- header CTA ---------- */
.v-header__right{gap:2rem}
.v-header__cta .wp-block-button__link{padding:.7rem 1.2rem;font-size:.75rem;background:var(--wp--preset--color--gold);color:#fff}
.v-header__cta .wp-block-button__link:hover{background:var(--wp--preset--color--navy)}
@media (max-width:900px){.v-header .v-header__cta{display:none!important}}
@media (max-width:600px){.v-header .wp-block-site-title{font-size:1.15rem;white-space:nowrap}}

/* ---------- property hero ---------- */
.v-hero--page{min-height:min(68vh,640px)}
.v-hero--page h1{font-size:clamp(2.4rem,5vw,4.2rem)}
.v-hero--page .wp-block-post-excerpt{color:rgba(255,255,255,.88);max-width:52ch;font-size:1.1rem;margin-top:.5rem}
.v-hero--page .wp-block-post-excerpt__excerpt{margin:0}
.v-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid rgba(28,38,51,.12);border-radius:4px;background:#fff;margin:0 0 2.5rem!important}
.v-facts>div{padding:1.2rem 1.4rem;border-left:1px solid rgba(28,38,51,.1)}
.v-facts>div:first-child{border-left:none}
.v-facts span{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.18em;color:var(--wp--preset--color--gold);font-weight:600;margin-bottom:.25rem}
.v-facts strong{font-family:var(--wp--preset--font-family--serif);font-size:1.35rem;font-weight:600;color:var(--wp--preset--color--ink)}
@media (max-width:781px){.v-facts{grid-template-columns:1fr 1fr}.v-facts>div:nth-child(3){border-left:none}.v-facts>div:nth-child(n+3){border-top:1px solid rgba(28,38,51,.1)}}
.v-gallery.wp-block-gallery{gap:.6rem!important;margin:2rem 0 3rem!important}
.v-gallery .wp-block-image{overflow:hidden;border-radius:4px}
.v-gallery .wp-block-image img{aspect-ratio:4/3;object-fit:cover;transition:transform 1s var(--v-ease)}
.v-gallery .wp-block-image:hover img{transform:scale(1.05)}
.v-section-title{font-size:clamp(1.6rem,3vw,2.2rem);margin:2.5rem 0 .25rem}

/* ---------- photo strip (marquee) ---------- */
.v-strip{overflow:hidden;padding:0;background:var(--wp--preset--color--paper);-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.v-strip__track{display:flex;gap:1rem;width:max-content;animation:v-marquee 60s linear infinite;padding:clamp(2.5rem,5vw,4rem) 0}
.v-strip:hover .v-strip__track{animation-play-state:paused}
.v-strip__item{margin:0;width:clamp(220px,24vw,340px);aspect-ratio:4/5;overflow:hidden;border-radius:4px;flex:none}
.v-strip__item:nth-child(even){transform:translateY(1.75rem)}
.v-strip__item img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--v-ease)}
.v-strip__item:hover img{transform:scale(1.06)}
@keyframes v-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- mobile booking bar ---------- */
.v-mobilebar{display:none}
@media (max-width:781px){
.v-mobilebar{display:flex;position:fixed;left:.75rem;right:.75rem;bottom:.75rem;z-index:60;gap:.5rem;transform:translateY(140%);transition:transform .45s var(--v-ease)}
body.v-show-bar .v-mobilebar{transform:none}
.v-mobilebar a{display:flex;align-items:center;justify-content:center;min-height:52px;border-radius:4px;text-decoration:none;box-shadow:0 14px 30px -12px rgba(0,0,0,.45);font-family:var(--wp--preset--font-family--sans);font-weight:600;letter-spacing:.12em;text-transform:uppercase;font-size:.8rem}
.v-mobilebar__call{flex:0 0 52px;background:#fff;color:var(--wp--preset--color--navy)}
.v-mobilebar__book{flex:1;background:var(--wp--preset--color--navy);color:#fff}
}
@media (prefers-reduced-motion:reduce){.v-strip__track{animation:none}.v-mobilebar{transition:none}}
.v-section-tight{padding-block:clamp(2.5rem,5vw,3.5rem)}
@media (max-width:781px){.v-facts>div{padding:.9rem 1rem}.v-facts strong{font-size:1.1rem}}

/* ---------- enquiry panel (shown when the booking plugin is not active) ---------- */
.v-enquiry{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:2.5rem;align-items:center;margin-block:2.5rem;padding:clamp(1.75rem,4vw,3rem);background:var(--wp--preset--color--limestone);border-top:3px solid var(--wp--preset--color--gold);box-shadow:var(--v-shadow)}
.v-enquiry h2{margin:.35rem 0 .75rem;font-size:clamp(1.8rem,3vw,2.4rem)}
.v-enquiry p{margin:0}
.v-enquiry__actions{display:flex;flex-direction:column;align-items:flex-start;gap:1rem}
.v-enquiry__call{font-weight:500;text-decoration:none;border-bottom:1px solid currentColor}
.v-enquiry__email{font-size:.9rem;opacity:.8}
.v-enquiry--hero{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.75rem;margin:0;padding:0;background:none;border:0;box-shadow:none;grid-template-columns:none}
.v-enquiry--hero .v-enquiry__call{color:#fff}
@media (max-width:781px){.v-enquiry{grid-template-columns:1fr;gap:1.5rem}}
.v-lead + .v-facts{margin-top:2.5rem}

/* Contact form (Contact Form 7, html_class v-form) */
.v-form{max-width:760px;margin-block:1.5rem 3rem}
.v-form p{margin:0 0 1.25rem}
.v-form__row{display:grid;grid-template-columns:1fr 1fr;gap:0 1.5rem}
.v-form label{display:block;font-size:.85rem;font-weight:500;letter-spacing:.04em;color:var(--wp--preset--color--ink)}
.v-form .required{color:var(--wp--preset--color--gold)}
.v-form .wpcf7-form-control-wrap{display:block;margin-top:.4rem}
.v-form input[type=text],.v-form input[type=email],.v-form textarea{width:100%;box-sizing:border-box;font:inherit;font-size:1rem;padding:.8rem .95rem;background:#fff;color:var(--wp--preset--color--ink);border:1px solid rgba(28,38,51,.22);border-radius:2px;transition:border-color .2s,box-shadow .2s}
.v-form input:focus,.v-form textarea:focus{outline:none;border-color:var(--wp--preset--color--navy);box-shadow:0 0 0 3px rgba(31,58,95,.15)}
.v-form textarea{min-height:9rem;resize:vertical}
.v-form .wpcf7-submit{font:inherit;font-size:.8rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;padding:1rem 2.2rem;border:0;border-radius:2px;background:var(--wp--preset--color--gold);color:#fff;cursor:pointer;transition:background-color .2s}
.v-form .wpcf7-submit:hover,.v-form .wpcf7-submit:focus-visible{background:var(--wp--preset--color--navy)}
.v-form .wpcf7-spinner{vertical-align:middle}
.v-form .wpcf7-not-valid{border-color:#b3261e}
.v-form .wpcf7-not-valid-tip{font-size:.8rem;color:#b3261e;margin-top:.3rem}
.v-form .wpcf7-response-output{margin:0;padding:.85rem 1rem;border-width:1px;border-radius:2px;font-size:.95rem}
.v-form.sent .wpcf7-response-output{border-color:#2e7d32;background:#f1f8f1}
@media (max-width:640px){.v-form__row{grid-template-columns:1fr}}

/* Popular questions */
.v-faq .v-title{margin-bottom:2rem}
.v-faq__item{border-top:1px solid rgba(28,38,51,.14);padding:0}
.v-faq__item:last-of-type{border-bottom:1px solid rgba(28,38,51,.14)}
.v-faq__item summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.15rem 0;font-family:var(--wp--preset--font-family--serif,inherit);font-size:1.25rem;font-weight:600;color:var(--wp--preset--color--ink)}
.v-faq__item summary::-webkit-details-marker{display:none}
.v-faq__item summary::after{content:"+";font-family:var(--wp--preset--font-family--sans,inherit);font-weight:300;font-size:1.6rem;line-height:1;color:var(--wp--preset--color--gold);transition:transform .3s var(--v-ease)}
.v-faq__item[open] summary::after{transform:rotate(45deg)}
.v-faq__item p{margin:0 0 1.25rem;max-width:68ch}

/* Contact map */
.v-map{margin-block:2.5rem}
.v-map__canvas{height:clamp(320px,50vh,520px);background:var(--wp--preset--color--limestone);display:flex;align-items:center;justify-content:center;border-radius:4px;overflow:hidden}
.v-map__legend{font-size:.95rem;margin-top:1rem}

/* Property "good to know" list */
.v-rules{list-style:none;padding:0;margin:1.5rem 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.75rem 2.5rem}
.v-rules li{position:relative;padding-left:1.4rem;line-height:1.55}
.v-rules li::before{content:"";position:absolute;left:0;top:.62em;width:.5rem;height:1px;background:var(--wp--preset--color--gold)}
.v-contact-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem 2.5rem;margin-block:1.5rem 2.5rem}
.v-contact-cards p{margin:0;line-height:1.6}

/* =====================================================================
   v1.2 polish: header contrast, alignment, type scale, galleries, map
   ===================================================================== */

/* Header: WordPress makes menu links inherit the menu's colour, so set it on the menu itself. */
.v-header .wp-block-navigation{color:#fff}
.v-header.is-scrolled .wp-block-navigation,body:not(.home) .v-header .wp-block-navigation{color:var(--wp--preset--color--ink)}
.v-header .wp-block-navigation__responsive-container.is-menu-open{color:#fff}
body.home .v-header:not(.is-scrolled){background:linear-gradient(180deg,rgba(18,25,34,.55),rgba(18,25,34,0))}

/* Hero: darker on the text side for legibility. */
.v-hero .wp-block-cover__background{background:linear-gradient(90deg,rgba(20,28,38,.72) 0%,rgba(20,28,38,.38) 45%,rgba(20,28,38,.08) 75%),linear-gradient(180deg,rgba(20,28,38,.25) 0%,rgba(20,28,38,0) 30%,rgba(20,28,38,.55) 100%)!important}
.v-hero p{font-weight:300;font-size:1.15rem}

/* One left edge on content pages: everything sits on the wide grid; running text keeps a reading width. */
.v-page-content>:is(p,h2,h3,h4,ul,ol,.wp-block-list,.wp-block-heading,.wpcf7){max-width:760px!important;margin-left:max(0px,calc((100% - var(--wp--style--global--wide-size,1240px))/2))!important;margin-right:auto!important}
.v-page-content>.v-section-title:first-child{margin-top:0}
.v-page-content .v-section-title{margin-top:3.5rem;margin-bottom:1rem}
.v-page-content .v-lead{font-size:1.25rem;font-weight:300;line-height:1.6;color:var(--wp--preset--color--ink)}
.v-page-content p{line-height:1.75}
.v-facts{margin:2.5rem 0 1rem!important}
.v-facts strong{font-size:1.15rem;line-height:1.35}
.v-facts span{font-size:.7rem}

/* Type: consistent sizes and comfortable reading. */
body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
.v-eyebrow{font-size:.75rem!important;letter-spacing:.22em!important}
.v-title{line-height:1.08}
.v-card__body p{font-size:.98rem;line-height:1.65}
.v-card__body h3{font-size:1.6rem;margin:.35rem 0 .6rem}
.v-feature h3{font-size:1.35rem;margin:.25rem 0 .6rem}
.v-feature p{font-size:.98rem;line-height:1.65}

/* Services: equal-height cards. */
.v-section .wp-block-columns>.wp-block-column>.v-feature{height:100%;box-sizing:border-box}

/* Property cards: tidier image ratio, gentle lift. */
.v-card .wp-block-image img{aspect-ratio:4/3;width:100%;object-fit:cover;transition:transform 1.2s var(--v-ease)}
.v-card:hover .wp-block-image img{transform:scale(1.04)}
.v-card:hover{transform:translateY(-4px)}

/* Popular questions: tighter list. */
.v-faq .v-faq__item{margin-block:0!important}
.v-faq__item summary{font-size:1.2rem;padding:1.05rem 0}
.v-faq__item summary:hover{color:var(--wp--preset--color--gold)}
.v-faq__item p{font-size:1rem}

/* Galleries: mosaic grid with a large lead photo (5, 9 and 10 photos all fill whole rows). */
.v-gallery.wp-block-gallery.has-nested-images{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:clamp(130px,15vw,215px);grid-auto-flow:dense;gap:.6rem!important;margin:1.25rem 0 3rem!important}
.v-gallery.wp-block-gallery.has-nested-images figure.wp-block-image{width:auto!important;max-width:none!important;margin:0!important;height:100%;flex:none!important}
.v-gallery.wp-block-gallery.has-nested-images figure.wp-block-image img{width:100%!important;height:100%!important;aspect-ratio:auto!important;object-fit:cover}
.v-gallery.wp-block-gallery.has-nested-images figure.wp-block-image:first-child,
.v-gallery.wp-block-gallery.has-nested-images figure.wp-block-image:first-child:nth-last-child(10)~figure:nth-child(7){grid-column:span 2;grid-row:span 2}
@media (max-width:781px){.v-gallery.wp-block-gallery.has-nested-images{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:34vw}}

/* Contact page address cards. */
.v-contact-cards p{background:#fff;border-top:2px solid var(--wp--preset--color--gold);padding:1.3rem 1.4rem;box-shadow:var(--v-shadow);border-radius:2px}
.v-contact-cards strong{font-family:var(--wp--preset--font-family--serif);font-size:1.3rem;font-weight:600;color:var(--wp--preset--color--ink)}

/* Map (Leaflet + OpenStreetMap). */
.v-map{margin-block:2.5rem 1rem}
.v-map__canvas{height:clamp(340px,48vh,500px);border-radius:4px;overflow:hidden;background:var(--wp--preset--color--limestone);box-shadow:var(--v-shadow);z-index:0}
.v-map__canvas .leaflet-tile-pane{filter:grayscale(.85) sepia(.18) brightness(1.04) contrast(.92)}
.v-map__canvas .leaflet-control-attribution{font-size:.68rem;background:rgba(251,248,242,.85)}
.v-map__legend{list-style:none;padding:0;margin:1rem 0 0;display:flex;flex-wrap:wrap;gap:.5rem 2rem;font-size:.92rem}
.v-map__legend li{display:flex;align-items:center;gap:.5rem}
.v-map__num,.v-pin span{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border-radius:50%;background:var(--wp--preset--color--navy);color:#fff;font-size:.75rem;font-weight:600;flex:none}
.v-pin{background:none;border:0}
.v-pin span{position:absolute;left:0;top:0;width:34px;height:34px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--wp--preset--color--navy);border:2px solid var(--wp--preset--color--sand);box-shadow:0 6px 14px rgba(28,38,51,.35);font-size:0;cursor:pointer}
.v-pin span::after{content:"L";transform:rotate(45deg);font-family:var(--wp--preset--font-family--serif);font-size:1.05rem;font-weight:700;color:var(--wp--preset--color--sand)}
.leaflet-tooltip.v-pin-label{background:var(--wp--preset--color--ink);color:#fff;border:0;border-radius:2px;font-family:var(--wp--preset--font-family--sans);font-size:.78rem;font-weight:500;letter-spacing:.04em;padding:.35rem .6rem;box-shadow:0 6px 16px rgba(28,38,51,.25)}
.leaflet-tooltip.v-pin-label::before{border-top-color:var(--wp--preset--color--ink)}
.v-contact .v-map{margin-top:3.5rem}

/* Footer: calmer headings, readable small print, credit. */
.v-footer h3.wp-block-heading{font-size:.78rem!important;letter-spacing:.22em!important;color:var(--wp--preset--color--sand);margin-bottom:1.1rem}
.v-footer p{font-size:.95rem;line-height:1.75}
.v-footer .v-footer__legal{font-size:.8rem;color:rgba(255,255,255,.55);margin:0}
.v-footer .v-footer__legal a{color:rgba(255,255,255,.8)}
.v-footer .v-footer__legal a:hover{color:var(--wp--preset--color--sand)}
@media (max-width:781px){.v-footer .wp-block-group.alignwide{flex-direction:column;align-items:flex-start;gap:.35rem}}

/* Forms sit on the same left edge as the text above them. */
.v-page-content .wpcf7 .v-form{margin-top:1rem}
.leaflet-tooltip-left.v-pin-label::before{border-left-color:var(--wp--preset--color--ink)}
.leaflet-tooltip-right.v-pin-label::before{border-right-color:var(--wp--preset--color--ink)}

/* Map pins show the legend number; legend entries align as number + text. */
.v-pin span{font-size:inherit}
.v-pin span::after{content:none}
.v-pin b{transform:rotate(45deg);font-family:var(--wp--preset--font-family--sans);font-size:.9rem;font-weight:600;color:var(--wp--preset--color--sand)}
.v-map__legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem 2rem;font-size:.95rem;line-height:1.5}
.v-map__legend li{align-items:flex-start;gap:.75rem}
.v-map__legend .v-map__num{margin-top:.1rem}

/* Spacing: content pages were padded twice (page wrapper + content block); phones get a slimmer side margin. */
.v-page-content.has-global-padding{padding-left:0!important;padding-right:0!important}
@media (max-width:600px){
	body{--wp--preset--spacing--50:22px;--wp--style--root--padding-left:22px;--wp--style--root--padding-right:22px}
	.v-page-content .v-lead{font-size:1.15rem}
	.v-facts strong{font-size:1.05rem}
	.v-section-title{font-size:1.7rem}
	.v-map__canvas{height:360px}
}

/* Form fields: dates, numbers and dropdowns match the text fields. */
.v-form input[type=date],.v-form input[type=number],.v-form select{width:100%;box-sizing:border-box;font:inherit;font-size:1rem;min-height:3.1rem;padding:.75rem .95rem;background:#fff;color:var(--wp--preset--color--ink);border:1px solid rgba(28,38,51,.22);border-radius:2px;transition:border-color .2s,box-shadow .2s}
.v-form select{appearance:none;-webkit-appearance:none;padding-right:2.5rem;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%238A6D3B' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 1rem center}
.v-form input[type=date]:focus,.v-form input[type=number]:focus,.v-form select:focus{outline:none;border-color:var(--wp--preset--color--navy);box-shadow:0 0 0 3px rgba(31,58,95,.15)}
