/* User-approved velvet and supplied crest; scoped to footer and open navigation. */

body footer,body .navigation-dialog{background:linear-gradient(#052d4933,#052d4933),url('/wp-content/themes/vitor-approved-v68/approved/assets/footer/velvet.webp') center/cover no-repeat #0b395f!important;color:#fcfbf9!important;--gold:#dfcc8c}
body footer{height:calc(1310 * var(--u))}
body footer .footer-signoff{left:calc(220 * var(--u));width:calc(760 * var(--u));height:calc(240 * var(--u));top:calc(1015 * var(--u));gap:calc(30 * var(--u))}
body footer .footer-crest{width:calc(240 * var(--u));height:calc(240 * var(--u));flex:0 0 auto;object-fit:contain}
body .navigation-dialog{padding:54px 0 0;overflow-y:auto;overscroll-behavior:contain;z-index:29}
body .navigation-dialog[hidden]{display:none}
body .menu-layout{position:relative;width:min(1200px,100%);height:calc(100dvh - 54px);min-height:746px;margin:auto;display:block}
body .menu-layout::before{content:'';position:absolute;top:0;bottom:0;left:50%;width:1px;background:#ffffff44}
body .menu-layout nav{position:absolute;left:4.5%;top:145px;width:29.5%;display:flex;flex-direction:column;align-items:center;gap:22px;font:300 30px/33px 'Ponte Light',Didot,serif;text-align:center;text-transform:uppercase}
body .menu-layout .menu-photo{position:absolute;left:39.25%;top:230px;width:21.333%;height:322px;object-fit:cover;display:block}
body .menu-brand{position:absolute;left:65.5%;top:115px;width:28%;text-align:center;display:block}
body .menu-brand .menu-crest{position:static;display:block;width:220px;height:220px;margin:0 auto 25px;object-fit:contain}
body .menu-brand .brand{font:300 40px/44px 'Ponte Light',Didot,serif;text-transform:uppercase;letter-spacing:0}
body .menu-brand .menu-description{margin:26px auto 0;font:400 17px/27.2px var(--sans);max-width:327px}
body .menu-brand .menu-contact{position:static;width:182px;height:49px;margin:28px auto 0;font:500 12px/1.4 var(--label);letter-spacing:.1em}
body.menu-open .site-header{background:#0b395f!important;border-color:#ffffff44!important;height:54px}
body.menu-open .site-header nav,body.menu-open .header-inquire{visibility:hidden}
body.menu-open .menu-toggle{left:12px;width:35px;height:44px}
body.menu-open .menu-toggle span{width:24px}
body.menu-open .site-header::after{content:''}
@media(min-width:768px) and (max-width:1100px){body .menu-layout nav{font-size:27px}body .menu-brand .brand{font-size:31px}body .menu-brand .menu-crest{width:200px;height:200px}body .menu-layout .menu-photo{height:280px}}
@media(max-width:767px){
 body footer{height:calc(1190 * var(--u))}
 body footer .footer-signoff{left:calc(35 * var(--u));top:calc(850 * var(--u));width:calc(250 * var(--u));height:calc(280 * var(--u));display:flex;flex-wrap:wrap;justify-content:center;gap:calc(12 * var(--u));font-size:calc(15 * var(--u));white-space:normal;text-align:center}
 body footer .footer-crest{width:200px;height:200px;order:-1;flex-basis:100%;max-width:100%}
 body footer .footer-signoff a{width:100%}
 body .navigation-dialog{padding-top:60px}
 body .menu-layout{height:auto;min-height:720px;width:100%;padding:22px 24px 40px}
 body .menu-layout::before,body .menu-layout .menu-photo{display:none}
 body .menu-layout nav{position:static;width:100%;font-size:29px;line-height:33px;gap:9px}
 body .menu-brand{position:static;width:100%;margin:58px auto 0}
 body .menu-brand .menu-crest{width:200px;height:200px;margin:auto}
 body .menu-brand .brand,body .menu-brand .menu-description,body .menu-brand .menu-contact{display:none}
 body.menu-open .site-header{height:60px!important}
 body.menu-open .site-header::after{content:'VITOR LINDO';font:300 18px/1.1 'Ponte Light',Didot,serif;letter-spacing:.02em}
 body.menu-open .menu-toggle{left:8px;top:4px;height:40px}
}
@media(min-width:768px) and (max-width:1199px){body footer{height:calc(1310 * var(--u) + 60px)}body footer .footer-crest{width:200px;height:200px}body footer .footer-signoff{height:200px}}
/* Latest supplied portrait and requested crest reductions. */
body footer .footer-crest{width:calc(168 * var(--u));height:calc(168 * var(--u))}
body .menu-brand .menu-crest{width:132px;height:132px}
body .menu-layout .menu-photo{object-fit:contain;background:transparent;height:322px}
body .footer-fine-art{display:block;margin-top:18px;font:400 14px/1.5 var(--sans);text-decoration:underline;text-underline-offset:4px}
body .about-main,body .artist-section img[src*="vitor-tuxedo.webp"]{object-fit:contain}
@media(max-width:767px){body footer .footer-crest{width:140px;height:140px;flex-basis:auto}body .menu-brand .menu-crest{width:120px;height:120px}body .menu-layout .menu-photo{display:block;position:static;width:160px;height:auto;margin:35px auto 0}body .menu-brand{margin-top:28px}}
@media(min-width:768px) and (max-width:1199px){body footer .footer-crest{width:140px;height:140px}body .menu-brand .menu-crest{width:120px;height:120px}}




.about-page .inner-explore h3,.experience-page .inner-explore h3{font-family:'Ponte Regular',serif;font-weight:400;font-synthesis:none}
.about-page .approach-section h3{font-family:'Ponte Light','Ponte Light',serif;font-weight:300;font-synthesis:none}

.footer-instagram{display:inline-flex;align-items:center;gap:8px;margin-top:14px;font:400 13px/1.5 var(--sans)}.footer-instagram svg{flex:none}.footer-instagram:hover span{text-decoration:underline}
/* Additional requested 15% reduction from v17's current footer crest. */
body footer .footer-crest{width:calc(142.8 * var(--u));height:calc(142.8 * var(--u))}
@media(max-width:1199px){body footer .footer-crest{width:119px;height:119px}}

/* v19: user-supplied charcoal menu composition. Footer retains blue velvet. */
body .navigation-dialog{background:rgba(25,26,26,.88)!important;backdrop-filter:blur(3px);color:white!important}
body.menu-open .site-header{background:rgba(25,26,26,.88)!important;color:white!important}
body .menu-layout{width:100%;height:calc(100dvh - 54px);min-height:720px}
body .menu-layout::before{display:none}
body .menu-layout nav{left:8%;top:28px;width:48%;align-items:flex-start;text-align:left;gap:4px;font:200 clamp(38px,4.4vw,66px)/1.06 var(--display);letter-spacing:-.02em}
body .menu-layout nav a:focus-visible{outline:2px solid white;outline-offset:5px}
body .menu-layout .menu-photo{left:8%;top:auto;bottom:38px;width:110px;height:110px;object-fit:cover;object-position:center 28%;margin:0}
body .menu-brand{left:auto;right:8%;top:70px;width:30%;text-align:left}
body .menu-brand .menu-crest{display:none}
body .menu-brand .brand{font:200 38px/1.1 var(--display)}
body .menu-brand .menu-description{display:block;margin:24px 0 0;font:400 16px/1.65 var(--sans);max-width:330px}
body .menu-signature{position:fixed;right:6%;bottom:36px;writing-mode:vertical-rl;text-transform:uppercase;font:200 26px/1.15 var(--display);letter-spacing:.035em;margin:0}
@media(max-width:767px){
body .menu-layout{padding:0;min-height:790px;height:calc(100dvh - 60px)}
body .menu-layout nav{position:absolute;left:10%;top:24px;width:80%;font-size:39px;line-height:1.08;gap:4px}
body .menu-brand{position:absolute;left:10%;right:auto;top:400px;width:75%;margin:0}
body .menu-brand .brand{display:block;font-size:26px}
body .menu-brand .menu-description{font-size:13px;line-height:1.65;margin-top:15px;max-width:270px}
body .menu-layout .menu-photo{position:absolute;left:10%;bottom:32px;width:90px;height:90px;margin:0}
body .menu-signature{position:absolute;right:0;bottom:auto;top:220px;font-size:21px}
}

body .menu-signature{white-space:nowrap}

/* v21: left-half charcoal drawer; separate footer untouched. */
body .navigation-dialog{right:auto;left:0;width:50vw;max-width:none}
body .menu-layout{width:100%;min-height:800px;height:calc(100dvh - 54px)}
body .menu-layout nav{left:15%;top:20px;width:78%;font-size:clamp(38px,3.8vw,58px);line-height:1.08;gap:4px}
body .menu-brand{left:15%;right:auto;top:530px;width:67%;margin:0;text-align:left}
body .menu-brand .menu-description{margin:0;max-width:340px;font-size:15px;line-height:1.6}
body .menu-layout .menu-photo{left:15%;bottom:30px;width:100px;height:100px}
body .menu-signature{position:absolute;right:-3%;top:145px;bottom:auto;font-size:24px}
body.menu-open .site-header{background:linear-gradient(to right,rgba(25,26,26,.88) 50%,transparent 50%)!important}
body.menu-open .site-header::after{content:none!important}
@media(max-width:767px){body .navigation-dialog{width:100%}body.menu-open .site-header{background:rgba(25,26,26,.88)!important}body .menu-layout{min-height:790px;height:calc(100dvh - 60px)}body .menu-layout nav{left:10%;top:24px;width:80%;font-size:39px}body .menu-brand{left:10%;top:410px;width:76%}body .menu-brand .menu-description{font-size:13px;max-width:270px}body .menu-layout .menu-photo{left:10%;bottom:32px;width:90px;height:90px}body .menu-signature{right:0;top:210px;font-size:21px}}
@media(min-width:768px) and (max-width:1000px){body .site-header>nav{display:none}}
/* v22: flowing menu rows prevent tagline/navigation collisions at every height. */
body .menu-layout{display:grid;grid-template-columns:1fr auto auto;grid-template-rows:auto auto minmax(180px,1fr);column-gap:20px;row-gap:24px;box-sizing:border-box;min-height:calc(100dvh - 54px);height:auto;padding:24px 10% 32px;width:100%}
body .menu-layout nav{position:static;grid-column:1/-1;width:auto;font-size:clamp(38px,3.8vw,55px);line-height:1.08;gap:0;align-items:flex-start;text-align:left}
body .menu-brand{display:contents}
body .menu-brand .menu-description{grid-column:1/-1;position:static;max-width:340px;width:auto;margin:0;font-size:15px;line-height:1.6;text-align:left}
body .menu-layout .menu-photo{position:static;grid-column:2;grid-row:3;width:180px;height:180px;align-self:end;margin:0;object-fit:cover}
body .menu-signature{position:static;grid-column:3;grid-row:3;align-self:end;font-size:30px;margin:0;writing-mode:vertical-rl;white-space:nowrap}
@media(max-height:740px) and (min-width:768px){body .menu-layout{grid-template-rows:auto auto minmax(135px,1fr);padding-top:16px;padding-bottom:22px;row-gap:18px}body .menu-layout nav{font-size:40px;line-height:1.02}body .menu-layout .menu-photo{width:135px;height:135px}body .menu-signature{font-size:26px}}
@media(max-width:767px){body .menu-layout{min-height:calc(100dvh - 60px);grid-template-rows:auto auto minmax(150px,1fr);column-gap:16px;padding:22px 10% 28px;row-gap:24px}body .menu-layout nav{font-size:39px;line-height:1.08}body .menu-brand .menu-description{max-width:270px;font-size:13px;line-height:1.6}body .menu-layout .menu-photo{width:135px;height:135px}body .menu-signature{font-size:26px}}

/* Compact background-film controls retain their accessible labels and touch targets. */
:is([data-home-banner],[data-media-banner],[data-background-film]) :is(.banner-toggle,.film-control){position:absolute!important;inset:auto 14px 14px auto!important;z-index:4!important;width:44px!important;height:44px!important;min-width:44px;padding:0!important;border:1px solid #ffffff90!important;border-radius:50%!important;background:#16161680!important;color:#fff!important;font-size:0!important;letter-spacing:0!important;display:grid;place-items:center;cursor:pointer}
:is([data-home-banner],[data-media-banner],[data-background-film]) :is(.banner-toggle,.film-control)[hidden]{display:none!important}
:is([data-home-banner],[data-media-banner],[data-background-film]) :is(.banner-toggle,.film-control)::before{content:'';width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:9px solid white;margin-left:3px}
:is([data-home-banner],[data-media-banner],[data-background-film]) :is([aria-label^="Pause"],[aria-pressed="true"])::before{width:10px;height:13px;border:0;border-left:3px solid white;border-right:3px solid white;margin:0;box-sizing:border-box}
:is([data-home-banner],[data-media-banner],[data-background-film]) :is(.banner-toggle,.film-control):focus-visible{outline:3px solid white!important;outline-offset:4px!important;box-shadow:0 0 0 6px #222}
@media(prefers-reduced-motion:reduce){.footer-tape>div{animation:none!important}}

.footer-tape>div{display:flex}.footer-tape>div>span{display:block;flex:none;white-space:pre}

/* v38: faithful original footer palette (foreground and background).
   Source: Aperol Spritz Contact footer desktop/mobile CSS and actual DOM.
   Match the requested template palette; do not substitute contrast-driven colors. */
body footer{background:#869d9f!important;color:#fff!important}
body footer a,body footer a:is(:hover,:focus-visible){color:#fff!important}
body footer a:focus-visible{outline-color:#fff}
body footer :is(.footer-explore a,.footer-signoff a,.footer-handle,.footer-fine-art,.footer-instagram):hover{opacity:.5;text-decoration:none}

body footer :is(.footer-explore a,.footer-signoff a,.footer-handle,.footer-about h2){transition:opacity .25s}
body footer a.outline-button{background:transparent;border-color:#fff;color:#fff!important}
body footer a.outline-button:is(:hover,:focus-visible){background:transparent;color:#fff!important;text-decoration:none}
@media(min-width:768px){body footer a.outline-button:hover{background:#fff;color:#251f18!important;border-color:#fff;opacity:1;text-decoration:none}}

/* Owner screenshot: overlapping initials, split date 20 / 12. Live webfont only. */
body footer .footer-vl{position:relative;display:block;flex:0 0 132px;width:132px;height:152px;color:#fff;font-synthesis:none;white-space:normal}
body footer .footer-vl>span{position:absolute;display:block;color:inherit}
body footer .footer-vl-v,body footer .footer-vl-l{font-family:'Ponte',serif;font-weight:200;font-style:italic;line-height:1;letter-spacing:0}
body footer .footer-vl-v{font-size:110px;left:1px;top:0}
body footer .footer-vl-l{font-family:'Ponte Light',serif;font-weight:300;font-size:109px;left:39px;top:44px}
body footer .footer-vl-20,body footer .footer-vl-12{font-family:'Ponte Regular',serif;font-weight:400;font-style:normal;font-size:11px;line-height:1;letter-spacing:1px}
body footer .footer-vl-20{left:103px;top:39px}
body footer .footer-vl-12{left:15px;top:112px}
@media(max-width:767px){body footer .footer-vl{width:67px;height:75px;flex-basis:67px;order:-1}body footer .footer-vl-v{font-size:56px;left:0;top:0}body footer .footer-vl-l{font-size:55px;left:20px;top:22px}body footer .footer-vl-20,body footer .footer-vl-12{font-size:6px;letter-spacing:.5px}body footer .footer-vl-20{left:52px;top:20px}body footer .footer-vl-12{left:8px;top:57px}}


/* v39 owner palette: original top-navigation dark gold, everywhere interactive.
   The expanded menu retains its half-page geometry and matches the footer. */
:root{--gold:#806023;--gold-on-light:#806023}
body .navigation-dialog,body footer{--gold:#806023}
body .navigation-dialog{background:#869d9f!important;backdrop-filter:none;color:#fff!important}
body.menu-open .site-header{background:linear-gradient(to right,#869d9f 50%,transparent 50%)!important;color:#fff!important}
body :is(a[href],button:not(:disabled)):is(:hover,:focus-visible){color:#806023!important;opacity:1}
body footer :is(a[href],button:not(:disabled)):is(:hover,:focus-visible){color:#806023!important;opacity:1}
body footer a.outline-button:is(:hover,:focus-visible){background:transparent;color:#806023!important;border-color:#806023;opacity:1}
body :is(a[href],button:not(:disabled)):focus-visible{outline:2px solid currentColor;outline-offset:5px}
@media(max-width:767px){body.menu-open .site-header{background:#869d9f!important}}

/* One viewport-anchored hit area for open/close, unaffected by header state or scroll lock. */
body .site-header .menu-toggle,body.menu-open .site-header .menu-toggle{position:fixed;left:calc(3.3vw - 4.5px);top:5px;width:44px;height:44px;margin:0;padding:0;display:block;transform:none}
body .site-header .menu-toggle span,body.menu-open .site-header .menu-toggle span{position:absolute;left:6px;top:21.5px;width:32px;height:1px;transform-origin:center}
body .site-header .menu-toggle span:first-child{transform:translateY(-4px)}
body .site-header .menu-toggle span:last-child{transform:translateY(4px)}
body.menu-open .site-header .menu-toggle span:first-child{transform:rotate(45deg)}
body.menu-open .site-header .menu-toggle span:last-child{transform:rotate(-45deg)}
@media(max-width:767px){body .site-header .menu-toggle,body.menu-open .site-header .menu-toggle{left:8px;top:0}}

/* v50: a clear rectangular inquiry CTA; retain existing nav placement and type. */
body .site-header .header-inquire{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:7px 14px;border:1px solid var(--ink,#251f18);border-radius:0;background:var(--ink,#251f18);color:var(--paper,#fcfbf9);white-space:nowrap;text-decoration:none;transition:background .2s,color .2s,border-color .2s}
body .site-header .header-inquire:hover{background:var(--paper,#fcfbf9);color:var(--ink,#251f18);border-color:var(--ink,#251f18);text-decoration:none}
body .site-header .header-inquire:focus-visible{outline:2px solid var(--ink,#251f18);outline-offset:3px;box-shadow:0 0 0 3px var(--paper,#fcfbf9)}
@media(max-width:767px){body .site-header .header-inquire{padding:7px 11px}}

/* v54: six navigation links around the centered Ponte wordmark; outer controls independent. */
body .site-header .header-balanced-nav{display:grid;grid-template-columns:minmax(0,1fr) 220px minmax(0,1fr);gap:44px;width:calc(100% - 300px);max-width:1280px}
body .site-header .header-nav-side{display:flex;align-items:center;gap:32px;white-space:nowrap}
body .site-header .header-nav-left{grid-column:1;justify-content:flex-end}
body .site-header .header-nav-right{grid-column:3;justify-content:flex-start}
body .site-header>.header-inquire{position:absolute;right:calc(3.3vw - 4.5px)}
body .site-header .header-wordmark{position:absolute;left:50%;transform:translateX(-50%);width:220px;text-align:center;white-space:nowrap;font:200 28px/1 'Ponte',serif;letter-spacing:0;text-decoration:none;color:inherit}
body.menu-open .site-header .header-wordmark{visibility:hidden}
@media(max-width:1099px){body .site-header .header-balanced-nav{display:none}body .site-header .header-wordmark{width:200px;font-size:26px}}
@media(max-width:767px){body .site-header .header-wordmark{width:140px;font-size:20px}body .site-header>.header-inquire{right:8px}}

/* v57: gentler spacing at the narrowest full-navigation widths. */
@media(min-width:1100px) and (max-width:1199px){body .site-header .header-balanced-nav{gap:36px}body .site-header .header-nav-side{gap:28px}}

/* Luxurious Script font glyph outlines (SIL OFL); shared dimensions and 20/12 details unchanged. */
body footer .footer-vl>svg.vl-cursive,.proposal-page .proposal-vl>svg.vl-cursive{position:absolute;inset:0;display:block;width:100%;height:100%;overflow:visible;color:inherit}

/* Compact interlocking VL: date accents stay outside the actual glyph strokes. */
body footer .footer-vl-20{left:118px;top:19px}body footer .footer-vl-12{left:3px;top:88px}
@media(max-width:767px){body footer .footer-vl-20{left:60px;top:10px}body footer .footer-vl-12{left:1.5px;top:44px}}

/* Secondary offering beneath Inquire, preserving the approved main menu. */
body .menu-layout nav a.menu-guest-portrait{font-size:clamp(18px,1.6vw,23px);line-height:1.3;margin-top:16px;text-transform:none;letter-spacing:0}
@media(max-width:767px){body .menu-layout nav a.menu-guest-portrait{font-size:20px;margin-top:14px}}

/* Restore the approved white footer typography. */
body footer .footer-tape,body footer .footer-signoff a,body footer .footer-credit{color:#fff!important}

/* Real inquiry embeds use their own responsive height, not mock-field geometry. */
body .contact-section:has(.vl-wedding-form){height:auto;padding:96px 24px 72px}
body .contact-frame:has(.vl-wedding-form){display:grid;grid-template-columns:minmax(0,400px) minmax(0,630px);gap:40px 64px;max-width:1094px;width:100%;height:auto;margin:0 auto}
body .contact-frame:has(.vl-wedding-form) .contact-portrait{position:static;width:100%;height:auto;grid-column:1;grid-row:1}
body .contact-frame:has(.vl-wedding-form) .contact-note{position:static;width:auto;margin:0;grid-column:1;grid-row:2}
body .contact-frame>.vl-wedding-form{grid-column:2;grid-row:1 / span 2;align-self:start}
body .vl-wedding-form iframe{display:block;min-width:0!important;max-width:100%!important}
@media(max-width:767px){body .contact-section:has(.vl-wedding-form){padding:40px 24px 56px}body .contact-frame:has(.vl-wedding-form){display:flex;flex-direction:column;gap:32px}body .contact-frame:has(.vl-wedding-form) .contact-portrait{max-width:360px;margin:auto}body .contact-frame:has(.vl-wedding-form) .contact-note{font-size:22px}}
