/* Shared visual foundation for the main website, booking and project pages. */
@font-face{font-family:Montserrat;src:url('./fonts/Montserrat-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Montserrat;src:url('./fonts/Montserrat-500.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:Montserrat;src:url('./fonts/Montserrat-600.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:Montserrat;src:url('./fonts/Montserrat-700.woff2') format('woff2');font-weight:700;font-display:swap}
:root{
 --vz-font:Montserrat,Arial,sans-serif;--vz-navy:#102532;--vz-blue:#267fba;
 --vz-ink:#172e3c;--vz-muted:#607580;--vz-paper:#f7f8f6;--vz-line:#dce4e7;
 --vz-card-radius:16px;--vz-field-radius:12px;--vz-action-radius:999px;
 --vz-action-height:52px;--vz-compact-height:44px;--vz-action-font-size:14px;
 --navy:var(--vz-navy);--blue:var(--vz-blue);--ink:var(--vz-ink);
 --muted:var(--vz-muted);--paper:var(--vz-paper);
 --vuzario-action-radius:var(--vz-action-radius);--vuzario-selection-radius:var(--vz-field-radius);
}
body{font-family:var(--vz-font);-webkit-font-smoothing:antialiased}
body :is(h1,h2,h3,h4,h5,h6){font-family:var(--vz-font);font-weight:600}
body :is(button,input,select,textarea){font-family:var(--vz-font)}
body :is(.btn,.button,.pill,.primary,.secondary,.tool,.menu,.hp-button,.vz-primary,.vz-nav-book,.vz-menu){font-family:var(--vz-font);font-weight:600;border-radius:var(--vz-action-radius)!important}
:is(.hp-button,.vz-primary,.vz-nav-book,.vz-menu){box-sizing:border-box;min-height:44px}
:is(.hp-photo,.hp-package-photo,.hp-film-player){border-radius:var(--vz-card-radius)}
body :is(.card,.panel,.estimate-card,.pricing-group,.booking-service,.book-panel,.hp-service-card,.hp-booking-card,.media-card,.downloads-card){border-radius:var(--vz-card-radius)!important}
:is(.field,.estimate-card) :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea){border-radius:var(--vz-field-radius)}
/* Photo viewers and native video controls keep their own fixed square geometry. */
:is(.icon-button,.viewer-arrow,.play-bubble,.slideshow-play,.video-play-overlay,.hp-play-circle){flex-shrink:0;aspect-ratio:1;border-radius:50%}
:is(button,a,input,select,textarea):focus-visible{outline-color:var(--vz-blue);outline-offset:3px}
.admin-page .admin-list-toolbar>#admin-status{min-width:0;max-width:100%;white-space:normal;overflow-wrap:break-word}
body.admin-layout:not([data-setup]) main h1{font-size:clamp(32px,3.3vw,42px);line-height:1.2;letter-spacing:-.035em}

/* Homepage typography uses the same family and hierarchy as service pages. */
#home .vz-masthead h1{font-family:var(--vz-font);font-size:clamp(48px,5.5vw,80px);font-weight:600;line-height:1.08;letter-spacing:-.045em}
#home :is(h1,h2,h3) em{font-style:normal;font-weight:inherit}
#home :is(.hp-section,.hp-film,.hp-process,.hp-local) h2{font-family:var(--vz-font);font-size:clamp(32px,3.3vw,46px);font-weight:600;line-height:1.18;letter-spacing:-.035em}
#home :is(.hp-service-card,.hp-steps) h3{font-family:var(--vz-font);font-size:24px;font-weight:600;line-height:1.3;letter-spacing:-.025em}
#home .hp-booking-card h3{font-family:var(--vz-font);font-size:30px;font-weight:600;line-height:1.25;letter-spacing:-.035em}
#home .hp-step-number{font-family:var(--vz-font);font-size:32px;font-weight:500;line-height:1.2}
#home :is(.hp-button,.hp-text-link,.vz-primary){font-size:14px}
#home .hp-button-dark{background:var(--vz-blue);border-color:var(--vz-blue)}
#home .hp-button-dark:hover{background:#206b9d;border-color:#206b9d}
#home .hp-service-price strong{font-weight:600}
#home .hp-services,#home .hp-process{background:var(--vz-paper)}
/* The same action size on the homepage and the service/booking pages. */
#home :is(.hp-button,.vz-primary){min-height:var(--vz-action-height);padding:14px 22px;font-size:var(--vz-action-font-size);line-height:1.5}
#home .hp-button svg{width:20px;height:20px;flex:0 0 20px}
#home .vz-primary{background:var(--vz-paper);border-color:var(--vz-paper)}
#home .vz-primary:hover{background:#dbeef5;border-color:#dbeef5}
#home .hp-package-bottom .hp-button{padding:14px 22px}

@media(max-width:900px){
 #home .vz-masthead h1{font-size:clamp(42px,6.8vw,64px)}
}
@media(max-width:600px){
 body.admin-layout:not([data-setup]) main h1{font-size:30px}
 #home .vz-masthead h1{font-size:clamp(32px,9.6vw,54px);line-height:1.14;letter-spacing:-.04em}
 #home :is(.hp-section,.hp-film,.hp-process,.hp-local) h2{font-size:clamp(28px,7.7vw,36px);line-height:1.2}
 #home :is(.hp-service-card,.hp-steps) h3{font-size:23px}
 #home .hp-booking-card h3{font-size:28px}
 #home .hp-package-bottom{gap:20px}
 #home .hp-package-bottom .hp-button{font-size:14px}
}
