/* GV Theme Builder Components V4 · styles are scoped to .gvtc */
.gvtc{
 /* Design tokens live exclusively in tokens.generated.css, derived from the V4 manifest. */
 position:relative;width:100%;font:400 16px/1.55 var(--gt-font);color:var(--gt-text);
 -webkit-font-smoothing:antialiased;isolation:isolate;
}
.gvtc *,.gvtc *::before,.gvtc *::after{box-sizing:border-box}
.gvtc a{text-decoration:none;color:inherit}
.gvtc a:focus-visible,.gvtc button:focus-visible,.gvtc input:focus-visible{outline:3px solid var(--gt-accent);outline-offset:3px}
.gvtc button,.gvtc input{font:inherit}
.gvtc .gvtc-sr{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;clip-path:inset(50%)!important}
.gvtc .gvtc-container{max-width:var(--gt-max);margin-inline:auto;padding-inline:clamp(20px,4vw,38px)}
.gvtc .gvtc-eyebrow{margin:0 0 18px;color:var(--gt-primary);font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.gvtc .gvtc-button{display:inline-flex;min-height:48px;align-items:center;justify-content:center;gap:15px;background:var(--gt-deep);color:#fff;border-radius:8px;padding:12px 25px;font-weight:700;font-size:14px;transition:transform .2s ease,background .2s ease}
.gvtc .gvtc-button:hover{background:var(--gt-primary);transform:translateY(-2px)}
.gvtc .gvtc-plain{display:inline-flex;align-items:center;min-height:48px;gap:7px;padding:9px 2px;font-size:14px;font-weight:650;border-bottom:1px solid var(--gt-primary)}
.gvtc .gvtc-plain:hover{color:var(--gt-primary)}
/* Header */
.gvtc--header{z-index:1000}
.gvtc .gvtc-header{min-height:82px;background:var(--gt-deep);color:#fff;border-bottom:1px solid rgba(255,255,255,.14);transition:background .22s ease,box-shadow .22s ease;position:relative}
.gvtc .gvtc-header.gvtc-is-scrolled{background:var(--gt-deep);box-shadow:0 12px 30px rgba(0,20,12,.16)}
.gvtc .gvtc-header-inner{max-width:1240px;min-height:82px;padding-inline:clamp(20px,3.3vw,28px);margin:auto;display:flex;align-items:center;justify-content:space-between;gap:24px}
.gvtc .gvtc-brand{flex:0 0 auto;min-width:0;display:flex;align-items:center}
.gvtc .gvtc-name{font-weight:800;letter-spacing:-.055em;font-size:23px;line-height:1;color:#fff;white-space:nowrap}
.gvtc .gvtc-brand .gv-wordmark{max-width:180px}
.gvtc .gvtc-nav{display:flex;align-items:center;gap:clamp(14px,1.7vw,28px);margin-left:auto}
.gvtc .gvtc-nav>a{position:relative;color:#eff8f2;font-size:13px;font-weight:600;white-space:nowrap;line-height:1.3;padding-block:10px}
/* WordPress Appearance > Menus. Keep the V4 appearance for both native and legacy links. */
.gvtc .gvtc-nav .gvtc-menu-list{display:flex;align-items:center;list-style:none;margin:0;padding:0;gap:clamp(14px,1.7vw,28px)}
.gvtc .gvtc-nav .gvtc-menu-list>li{list-style:none;margin:0;padding:0}
.gvtc .gvtc-nav .gvtc-menu-list>li>a{display:block;position:relative;color:#eff8f2;font-size:13px;font-weight:600;white-space:nowrap;line-height:1.3;padding-block:10px;text-decoration:none}
.gvtc .gvtc-nav .gvtc-menu-list>li>a:after{content:"";height:1px;background:var(--gt-accent);position:absolute;left:0;right:100%;bottom:5px;transition:right .2s ease}
.gvtc .gvtc-nav .gvtc-menu-list>li>a:hover:after,.gvtc .gvtc-nav .gvtc-menu-list>.current-menu-item>a:after,.gvtc .gvtc-nav .gvtc-menu-list>.current-menu-ancestor>a:after{right:0}

.gvtc .gvtc-nav>a:after{content:"";height:1px;background:var(--gt-accent);position:absolute;left:0;right:100%;bottom:5px;transition:right .2s ease}
.gvtc .gvtc-nav>a:hover:after{right:0}
.gvtc .gvtc-cta{min-height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;background:var(--gt-accent);color:var(--gt-deep);padding:12px 20px;font-size:13px;font-weight:800;white-space:nowrap;transition:filter .2s ease}
.gvtc .gvtc-cta:hover{filter:brightness(.95)}

/* Standalone universes: the editorial header never includes the personal menu. */
.gvtc.gvtc--hospitality .gvtc-header{
 background:var(--gt-deep);
 border-bottom:2px solid var(--gt-accent);
}
.gvtc.gvtc--masters .gvtc-header{
 background:var(--gt-deep);
 border-bottom:2px solid var(--gt-accent);
}
.gvtc.gvtc--hospitality .gvtc-brand .gv-wordmark{
 max-width:min(220px,35vw);
}
.gvtc.gvtc--masters .gvtc-brand .gv-wordmark{
 max-width:min(190px,33vw);
}
.gvtc.gvtc--hospitality .gvtc-nav>a:hover,
.gvtc.gvtc--masters .gvtc-nav>a:hover{
 color:var(--gt-accent);
}
.gvtc .gvtc-cta--return{
 background:transparent;
 color:#FFFFFF;
 border:1px solid var(--gt-accent);
}
.gvtc .gvtc-cta--return:hover{
 filter:none;
 background:var(--gt-accent);
 color:var(--gt-deep);
}
.gvtc.gvtc--hospitality .gvtc-name,
.gvtc.gvtc--masters .gvtc-name{
 letter-spacing:-.04em;
}

.gvtc .gvtc-toggle,.gvtc .gvtc-mobile-cta{display:none}
/* 404 */
.gvtc .gvtc-error{background:var(--gt-bg);min-height:min(710px,75svh);display:flex;align-items:center;padding-block:clamp(66px,9vw,130px);overflow:hidden}
.gvtc .gvtc-error .gvtc-container{width:100%}
.gvtc .gvtc-error-code{font-size:clamp(124px,22vw,330px);line-height:.74;letter-spacing:-.12em;font-weight:800;color:var(--gt-primary);margin:30px 0 40px;user-select:none}
.gvtc .gvtc-error-code span{color:var(--gt-accent)}
.gvtc .gvtc-error h1{font-size:clamp(35px,5.2vw,70px);max-width:980px;line-height:1.06;letter-spacing:-.065em;margin:0;color:var(--gt-text)}
.gvtc .gvtc-error .gvtc-container>p:not(.gvtc-eyebrow){font-size:clamp(16px,1.45vw,19px);max-width:670px;margin:27px 0;color:var(--gt-text)}
.gvtc .gvtc-actions{display:flex;align-items:center;gap:28px;flex-wrap:wrap;margin-top:36px}
/* Archives and search */
.gvtc .gvtc-index{background:var(--gt-bg);padding:clamp(60px,7vw,100px) 0 115px;min-height:600px}
.gvtc .gvtc-index-top{border-bottom:1px solid var(--gt-soft);padding-bottom:50px;margin-bottom:44px}
.gvtc .gvtc-index-top h1{font-size:clamp(43px,6.2vw,78px);line-height:1.07;letter-spacing:-.065em;max-width:950px;margin:0;color:var(--gt-deep)}
.gvtc .gvtc-index-top .gvtc-intro{font-size:16px;line-height:1.65;margin:20px 0 0;max-width:710px}
.gvtc .gvtc-search-form{max-width:580px;display:flex;min-height:52px;align-items:center;margin-top:34px;background:#fff;border:1px solid var(--gt-soft);border-radius:8px;overflow:hidden}
.gvtc .gvtc-search-form:focus-within{outline:2px solid var(--gt-primary);outline-offset:2px}
.gvtc .gvtc-search-form input{flex:1;min-width:0;border:0;background:transparent;color:var(--gt-text);min-height:52px;padding:14px 18px;outline:0;font-size:16px}
.gvtc .gvtc-search-form input:focus-visible{outline:0}
.gvtc .gvtc-search-form button{margin:4px;min-height:44px;min-width:48px;border:0;border-radius:6px;background:var(--gt-primary);color:#fff;cursor:pointer;font-weight:800}
.gvtc .gvtc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,2vw,30px)}
/* Loop card: dynamic featured image, title, excerpt and URL, no fake ratings */
.gvtc .gvtc-card{border:1px solid var(--gt-soft);background:#fff;border-radius:var(--gt-radius);overflow:hidden;display:flex;min-width:0;transition:transform .2s ease,box-shadow .2s ease}
.gvtc .gvtc-card:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(4,32,22,.08)}
.gvtc .gvtc-card-click{display:flex;flex-direction:column;width:100%;min-width:0}
.gvtc .gvtc-card-media{aspect-ratio:1.48/1;overflow:hidden;background:var(--gt-soft);position:relative}
.gvtc .gvtc-card-image{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}
.gvtc .gvtc-card:hover .gvtc-card-image{transform:scale(1.04)}
.gvtc .gvtc-card-placeholder{display:flex;justify-content:center;align-items:center;width:100%;height:100%;font-size:clamp(70px,8vw,130px);font-weight:800;letter-spacing:-.12em;color:var(--gt-primary);opacity:.27}
.gvtc .gvtc-card-copy{padding:26px 25px 27px;display:flex;flex-direction:column;flex:1}
.gvtc .gvtc-card-tag{font-size:11px;letter-spacing:.12em;line-height:1.4;text-transform:uppercase;font-weight:800;color:var(--gt-primary);margin-bottom:15px}
.gvtc .gvtc-card-copy h2{font-size:clamp(20px,2vw,27px);font-weight:700;letter-spacing:-.045em;line-height:1.19;margin:0 0 13px;color:var(--gt-deep)}
.gvtc .gvtc-card-copy p{margin:0 0 22px;font-size:14px;line-height:1.65;color:var(--gt-text);opacity:.84}
.gvtc .gvtc-card-more{margin-top:auto;font-size:13px;font-weight:750;color:var(--gt-primary);border-top:1px solid var(--gt-soft);padding-top:20px}
.gvtc .gvtc-empty{background:var(--gt-soft);padding:40px;border-radius:16px}
.gvtc .gvtc-empty p{margin:0 0 15px}
.gvtc .gvtc-empty a{font-weight:750;text-decoration:underline}
.gvtc .gvtc-pages{display:flex;justify-content:center;margin-top:48px}
.gvtc .gvtc-pages ul{display:flex;align-items:center;gap:6px;list-style:none;margin:0;padding:0}
.gvtc .gvtc-pages a,.gvtc .gvtc-pages span{display:flex;align-items:center;justify-content:center;min-width:42px;min-height:42px;padding:8px;border:1px solid var(--gt-soft);border-radius:8px}
.gvtc .gvtc-pages .current{background:var(--gt-primary);color:white;border-color:var(--gt-primary)}
.gvtc--loop{height:100%}
.gvtc--loop>.gvtc-card{height:100%}
/* Use official on-brand readable context for large text */
.gvtc--masters .gvtc-card,.gvtc--hospitality .gvtc-card{border-color:var(--gt-soft)}
.gvtc--consulting .gvtc-header{background:var(--gt-deep)}
@media(min-width:1025px){
 .gvtc .gvtc-header.gvtc-is-scrolled .gvtc-header-inner{min-height:68px}
 .gvtc .gvtc-header.gvtc-is-scrolled{min-height:68px}
 .gvtc .gvtc-header-inner{transition:min-height .2s ease}
}
@media(max-width:1050px){
 .gvtc .gvtc-header{min-height:70px}
 .gvtc .gvtc-header-inner{min-height:70px}
 .gvtc .gvtc-toggle{flex:0 0 44px;width:44px;height:44px;border:1px solid rgba(255,255,255,.27);background:transparent;border-radius:8px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;cursor:pointer;color:#fff}
 .gvtc .gvtc-toggle>span:not(.gvtc-sr){height:2px;width:20px;background:currentColor;transition:transform .2s ease}
 .gvtc .gvtc-toggle[aria-expanded=true]>span:nth-child(1){transform:translateY(4px) rotate(45deg)}
 .gvtc .gvtc-toggle[aria-expanded=true]>span:nth-child(2){transform:translateY(-4px) rotate(-45deg)}
 .gvtc .gvtc-nav{position:absolute;top:100%;left:0;right:0;display:none;flex-direction:column;align-items:stretch;gap:0;margin:0;max-height:calc(100dvh - 80px);overflow-y:auto;background:var(--gt-deep);padding:16px max(20px,calc((100vw - 1180px)/2));box-shadow:0 17px 32px rgba(0,20,12,.26);z-index:20}
 .gvtc .gvtc-nav.gvtc-nav-open{display:flex}
 .gvtc .gvtc-nav .gvtc-menu-list{display:flex;flex-direction:column;align-items:stretch;gap:0;width:100%}
 .gvtc .gvtc-nav .gvtc-menu-list>li{width:100%;border-bottom:1px solid rgba(255,255,255,.13)}
 .gvtc .gvtc-nav .gvtc-menu-list>li>a{display:block;font-size:16px;padding:15px 0;white-space:normal}

 .gvtc .gvtc-nav>a{padding:15px 0;font-size:16px;border-bottom:1px solid rgba(255,255,255,.13)}
 .gvtc .gvtc-mobile-cta{display:block!important;color:var(--gt-accent)!important;font-weight:800!important}
 .gvtc .gvtc-cta{margin-left:auto}
}
@media(max-width:700px){
 .gvtc .gvtc-name{font-size:21px}
 .gvtc .gvtc-cta{display:none}
 .gvtc .gvtc-grid{grid-template-columns:1fr;gap:23px}
 .gvtc .gvtc-index{padding:55px 0 75px}
 .gvtc .gvtc-index-top{padding-bottom:32px;margin-bottom:32px}
 .gvtc .gvtc-error{min-height:75svh;padding-block:70px}
 .gvtc .gvtc-error-code{margin-block:35px;font-size:clamp(130px,38vw,220px)}
 .gvtc .gvtc-error h1{font-size:clamp(34px,10vw,50px)}
 .gvtc .gvtc-actions{align-items:flex-start;flex-direction:column;gap:12px}
 .gvtc .gvtc-card-media{aspect-ratio:1.6/1}
 .gvtc .gvtc-card-copy{padding:23px}
}
@media(prefers-reduced-motion:reduce){
 .gvtc *,.gvtc *:before,.gvtc *:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}
 .gvtc .gvtc-card:hover,.gvtc .gvtc-button:hover,.gvtc .gvtc-card:hover .gvtc-card-image{transform:none!important}
}
/* 1.2.0 · editorial 404 and search overhaul. Scoped to this plugin. */
.gvtc.gvtc--404,.gvtc.gvtc--search,.gvtc.gvtc--archive{overflow-x:clip}
.gvtc .gvtc-error{min-height:calc(100svh - 160px);background:var(--gt-bg);padding:clamp(60px,7vw,100px) 0;overflow:hidden}
.gvtc .gvtc-error-layout{display:grid;grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);gap:clamp(26px,5vw,70px);align-items:stretch}
.gvtc .gvtc-error-story{align-self:center;min-width:0;padding:20px 0}
.gvtc .gvtc-error-story .gvtc-eyebrow{color:var(--gt-primary);margin-bottom:22px}
.gvtc .gvtc-error-story h1{color:var(--gt-deep);font:800 clamp(42px,5vw,77px)/1.05 var(--gt-font);letter-spacing:-.065em;margin:0;max-width:720px;overflow-wrap:break-word}
.gvtc .gvtc-error-lead{color:var(--gt-text);font:400 clamp(16px,1.4vw,19px)/1.7 var(--gt-font);max-width:600px;margin:24px 0 0}
.gvtc .gvtc-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:34px}
.gvtc .gvtc-error-visual{min-height:350px;background:var(--gt-deep);border-radius:var(--gt-radius);display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative;overflow:hidden;padding:30px}
.gvtc .gvtc-error-visual:before{content:'';position:absolute;inset:-40%;background:radial-gradient(ellipse,rgba(255,255,255,.075),transparent 62%);pointer-events:none}
.gvtc .gvtc-error-visual .gvtc-error-code{display:block;position:relative;font:800 clamp(112px,13vw,228px)/.94 var(--gt-font);letter-spacing:-.09em;color:#f1f8f4;margin:0 0 28px;white-space:nowrap;text-align:center;user-select:none}
.gvtc .gvtc-error-code span{color:var(--gt-accent)}
.gvtc .gvtc-error-visual-line{height:3px;width:68px;background:var(--gt-accent);z-index:1}
.gvtc .gvtc-error-visual-caption{color:#f1f8f4;font:800 11px/1.4 var(--gt-font);letter-spacing:.16em;text-align:center;margin-top:20px;z-index:1}
.gvtc .gvtc-recovery{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:30px;align-items:center;border-top:1px solid var(--gt-soft);margin-top:clamp(38px,5vw,72px);padding-top:28px}
.gvtc .gvtc-recovery-heading span{color:var(--gt-primary);font-size:11px;font-weight:800;letter-spacing:.14em}
.gvtc .gvtc-recovery-heading h2{font:700 clamp(21px,2.2vw,29px)/1.2 var(--gt-font);color:var(--gt-deep);letter-spacing:-.045em;margin:10px 0 0}
.gvtc .gvtc-index{padding:0 0 clamp(70px,7vw,110px);min-height:520px;background:var(--gt-bg)}
.gvtc .gvtc-index-intro{background:var(--gt-deep);color:white;padding:clamp(56px,7vw,105px) 0 clamp(47px,5vw,76px)}
.gvtc .gvtc-index-intro-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);gap:clamp(30px,6vw,100px);align-items:end}
.gvtc .gvtc-index-head{min-width:0}
.gvtc .gvtc-index-head .gvtc-eyebrow{color:var(--gt-accent);margin:0 0 25px}
.gvtc .gvtc-index-head h1{font:800 clamp(43px,6vw,82px)/1.04 var(--gt-font);color:white;letter-spacing:-.065em;margin:0;max-width:750px;overflow-wrap:break-word}
.gvtc .gvtc-title-period{color:var(--gt-accent)}
.gvtc .gvtc-index-head .gvtc-intro{color:#e9f5ef;font:400 clamp(15px,1.45vw,18px)/1.65 var(--gt-font);margin:25px 0 0;max-width:640px}
.gvtc .gvtc-query-label{display:inline-block;max-width:100%;font-size:13px;line-height:1.7;color:white;overflow-wrap:anywhere;margin:19px 0 0}
.gvtc .gvtc-query-label strong{color:var(--gt-accent);font-weight:800}
.gvtc .gvtc-index-search{min-width:0}
.gvtc .gvtc-search-kicker{color:white;font:700 12px/1.4 var(--gt-font);margin:0 0 12px}
.gvtc .gvtc-search-form{display:flex;align-items:center;width:100%;min-height:58px;margin:0;background:#fff;border:1px solid #cfe2d8;border-radius:8px;overflow:hidden}
.gvtc .gvtc-search-form:focus-within{outline:3px solid var(--gt-accent);outline-offset:3px}
.gvtc .gvtc-search-form input{flex:1;min-width:0;min-height:54px;padding:14px 18px;background:transparent;color:var(--gt-text);border:0;outline:0!important;font-size:16px;box-shadow:none}
.gvtc .gvtc-search-form button{border:0;margin:5px;padding:0 15px;min-width:48px;min-height:45px;border-radius:6px;background:var(--gt-primary);color:white;font-size:20px;cursor:pointer}
.gvtc .gvtc-search-form button:hover{background:var(--gt-deep)}
.gvtc .gvtc-results-container{padding-top:clamp(38px,5vw,70px)}
.gvtc .gvtc-result-heading{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;border-bottom:1px solid var(--gt-soft);padding-bottom:19px;margin-bottom:28px}
.gvtc .gvtc-result-label{color:var(--gt-primary);font-size:11px;font-weight:800;letter-spacing:.15em}
.gvtc .gvtc-result-number{color:var(--gt-text);font-size:13px;font-weight:700}
.gvtc .gvtc-empty{display:grid;grid-template-columns:auto minmax(0,1fr);gap:26px;align-items:center;background:white;padding:clamp(26px,5vw,60px);border:1px solid var(--gt-soft);border-radius:var(--gt-radius)}
.gvtc .gvtc-empty-index{font:800 clamp(66px,10vw,110px)/1 var(--gt-font);color:var(--gt-primary);letter-spacing:-.1em;opacity:.19}
.gvtc .gvtc-empty h2{font:700 clamp(23px,2.7vw,35px)/1.2 var(--gt-font);letter-spacing:-.05em;color:var(--gt-deep);margin:0 0 14px}
.gvtc .gvtc-empty p{color:var(--gt-text);font-size:15px;line-height:1.7;margin:0 0 17px;max-width:580px}
.gvtc .gvtc-preview-note{border-style:dashed}
@media(min-width:701px) and (max-width:1050px){
.gvtc .gvtc-error-layout{grid-template-columns:minmax(0,1fr) minmax(0,.85fr);gap:20px}
.gvtc .gvtc-error-visual{min-height:320px}
.gvtc .gvtc-error-visual .gvtc-error-code{font-size:clamp(105px,14vw,165px);margin-bottom:18px}
.gvtc .gvtc-index-intro-layout{grid-template-columns:1fr;gap:30px}
.gvtc .gvtc-index-search{max-width:580px}
.gvtc .gvtc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
.gvtc .gvtc-error{min-height:auto;padding:52px 0}
.gvtc .gvtc-error-layout{grid-template-columns:1fr;gap:27px}
.gvtc .gvtc-error-story{padding:0}
.gvtc .gvtc-error-story h1{font-size:clamp(37px,9vw,53px)}
.gvtc .gvtc-error-visual{min-height:200px;padding:20px}
.gvtc .gvtc-error-visual .gvtc-error-code{font-size:clamp(108px,22vw,167px);margin:0 0 10px}
.gvtc .gvtc-error-visual-caption{font-size:9px;margin-top:9px}
.gvtc .gvtc-recovery{grid-template-columns:1fr;gap:18px}
.gvtc .gvtc-index-intro{padding:52px 0 47px}
.gvtc .gvtc-index-intro-layout{grid-template-columns:1fr;gap:27px}
.gvtc .gvtc-index-head h1{font-size:clamp(41px,10vw,59px)}
.gvtc .gvtc-index{padding-bottom:75px}
.gvtc .gvtc-results-container{padding-top:34px}
.gvtc .gvtc-empty{grid-template-columns:1fr;gap:10px}
.gvtc .gvtc-empty-index{font-size:63px}
}
@media(max-width:360px){
.gvtc .gvtc-container{padding-inline:16px}
.gvtc .gvtc-error-story h1{font-size:35px}
.gvtc .gvtc-error-visual{min-height:175px}
.gvtc .gvtc-error-visual .gvtc-error-code{font-size:104px}
.gvtc .gvtc-button{width:100%}
.gvtc .gvtc-index-head h1{font-size:37px}
.gvtc .gvtc-search-form input{padding:12px}
.gvtc .gvtc-empty{padding:25px}
}
@media(max-width:700px){
 .gvtc .gvtc-actions{align-items:flex-start;flex-direction:column}
}
