/* Content geometry is shared by all page templates. */
.gv8n-page-content {
    width: 100%;
    min-width: 0;
    display: flow-root;
}
.gv8n-site .gv8n-page-content :is(h1,h2) {
    font-size: clamp(27px,2.6vw,38px);
    line-height: 1.25;
    margin: 32px 0 18px;
    letter-spacing: 0;
    overflow-wrap: anywhere;
    text-wrap: pretty;
}
.gv8n-site .gv8n-page-content h3 {
    font-size: clamp(23px,2vw,29px);
    line-height: 1.3;
    margin: 28px 0 15px;
}
.gv8n-site .gv8n-page-content :is(h4,h5,h6) {
    font-family: var(--gv8-display);
    font-size: 21px;
    line-height: 1.35;
    margin: 24px 0 12px;
}
.gv8n-page-content > :first-child { margin-top: 0; }
.gv8n-page-content > :last-child { margin-bottom: 0; }
.gv8n-page-content > p:empty { display: none; }
.gv8n-page-content :is(.alignwide,.alignfull,.wp-block-columns,.wp-block-group,.wp-block-table) {
    max-width: 100%;
    min-width: 0;
}
.gv8n-page-content :is(.alignwide,.alignfull) { margin-inline: 0; width: 100%; }
.gv8n-page-content .wp-block-column { min-width: 0; }
.gv8n-page-content .wp-block-table { margin: 26px 0; overflow-x: auto; }
.gv8n-page-content :is(table,iframe,video) { max-width: 100%; }
.gv8n-page-content :is(td,th) { overflow-wrap: anywhere; vertical-align: top; }
.gv8n-page-content .wp-block-table.is-style-stripes tbody tr:nth-child(odd) { background: #ffffff06; }
.gv8n-page-content .wp-block-table.is-style-stripes { border-color: var(--gv8-stroke); }
.gv8n-page-content .aligncenter { display: block; margin-inline: auto; }
.gv8n-page-content .alignleft { float: left; margin: 0 24px 18px 0; }
.gv8n-page-content .alignright { float: right; margin: 0 0 18px 24px; }
.gv8n-page-content pre { max-width: 100%; overflow-x: auto; white-space: pre; }
.gv8n-page-back { clear: both; }
.gv8s-plain-copy,.gv8s-plain-back { width: 100%; max-width: 880px; margin-inline: auto; }
/* Tables, centered introductions, headings and copy use the same axis. */
.gv8s-offer-page .gv8n-page-content,
.gv8s-offer-page .gv8s-plain-back { max-width: none; width: 100%; margin-inline: 0; }
.gv8s-offer-page .gv8n-page-content > :is(p,ul,ol,h1,h2,h3,h4,figure) {
    max-width: none;
}
.gv8s-offer-page .gv8s-plain-copy > p:first-child {
    font-size: inherit;
    line-height: inherit;
    padding-bottom: 0;
    border-bottom: 0;
    margin-bottom: 1.2em;
    color: inherit;
}
.gv8s-offer-page .gv8n-interior { padding-block: clamp(36px,4.2vw,62px) clamp(60px,6vw,90px); }
.gv8n-page-content table.gv8s-category-table {
    width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
}
.gv8n-page-content table.gv8s-category-table td { padding: 0; vertical-align: middle; }
.gv8s-category-table td strong { display: block; }
.gv8n-page-content table.gv8s-category-table td a {
    display: flex;
    align-items: center;
    min-height: 60px;
    padding: 16px 18px;
    font-size: 14px;
    line-height: 1.5;
    text-decoration: none;
    color: #e1be7c;
    transition: background .2s,color .2s;
}
.gv8n-page-content table.gv8s-category-table td a:hover,
.gv8n-page-content table.gv8s-category-table td a:focus-visible { background: #ffffff09; color: #f6e3bc; }
/* Compact title bands, including pages with no cover photo. */
.gv8n-page-hero .gv8n-page-hero-content {
    min-height: 190px;
    padding-block: 38px;
}
.gv8n-site .gv8n-page-hero h1 { font-size: clamp(36px,4.1vw,60px); line-height: 1.14; }
body.single-post.gv8n-site .gv8n-page-hero h1 { font-size: clamp(33px,3.6vw,50px); }
.gv8n-site .gv8n-post-card { display: flex; flex-direction: column; }
.gv8n-post-card .gv8n-card-photo { flex-shrink: 0; }
.gv8n-site .gv8n-post-card .gv8n-card-body { flex: 1; display: flex; flex-direction: column; }
.gv8n-post-card .gv8n-card-body .gv8n-text-link { margin-top: auto; padding-top: 18px; }
.gv8n-gallery-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.gv8n-gallery-grid a { min-width: 0; }
.gv8n-native-form label,.gv8n-contact-info,.gv8n-contact-intro > div { min-width: 0; }
.gv8n-native-form .gv8n-btn { white-space: normal; }
.gv8n-mobile-columns a,.gv8n-footer-contact a { overflow-wrap: anywhere; }
.gv8n-footer-links .sub-menu { list-style: none; padding: 5px 0 0 12px; }
.gv8n-mobile-panel { max-height: calc(100dvh - 120px); }
@media (max-width: 782px) {
    .gv8n-page-content .wp-block-columns { flex-wrap: wrap !important; }
    .gv8n-page-content .wp-block-column { flex-basis: 100% !important; }
}
@media (max-width: 700px) {
    .gv8n-page-hero .gv8n-page-hero-content { min-height: 150px; padding-block: 29px; }
    .gv8n-site .gv8n-page-hero h1 { font-size: clamp(32px,8.2vw,46px); }
    .gv8n-site .gv8n-page-content :is(h1,h2) { font-size: clamp(25px,6.5vw,31px); }
    .gv8n-site .gv8n-page-content h3 { font-size: 23px; }
    .gv8n-page-content :is(.alignleft,.alignright) { float: none; display: block; margin: 20px auto; }
    .gv8n-page-content blockquote { padding: 20px; }
    .gv8n-page-content table.gv8s-category-table,
    .gv8n-page-content table.gv8s-category-table tbody,
    .gv8n-page-content table.gv8s-category-table tr,
    .gv8n-page-content table.gv8s-category-table td { display: block; width: 100%; }
    .gv8n-page-content table.gv8s-category-table td { border-bottom: 0; }
    .gv8n-page-content table.gv8s-category-table tr:last-child td:last-child { border-bottom: 1px solid #ffffff22; }
    .gv8n-page-content table.gv8s-category-table td a { min-height: 49px; padding: 13px 16px; }
    .gv8n-hero-actions > a.gv8n-btn { justify-content: center; }
    .gv8n-site .gv8n-footer-main { grid-template-columns: minmax(0,1fr); }
    .gv8n-footer-main > * { grid-column: 1; }
    .gv8n-footer-links .sub-menu { padding-left: 0; }
    .gv8n-contact-photo { min-height: 0; }
    .gv8n-gallery-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .gv8n-hero-side { display: none; }
}
@media (max-width: 400px) {
    .gv8n-hero-scroll { display: none; }
    .gv8n-hero-bottom-inner { justify-content: flex-end; }
    .gv8n-contact-identity { min-width: 0; max-width: 160px; }
    .gv8n-gallery-grid { grid-template-columns: minmax(0,1fr); }
}

/* Model cards contain text only; every card is one link. */
.gv8s-model-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:1fr;gap:22px}
.gv8s-model-tile{min-width:0;background:#1b201c;border:1px solid #41453c;border-top:2px solid var(--gv8-gold-muted);transition:background .2s,border-color .2s}
.gv8s-model-tile>a{display:flex;flex-direction:column;min-height:300px;height:100%;padding:29px 28px 26px;color:var(--gv8-white)}
.gv8s-model-tile:hover,.gv8s-model-tile:focus-within{background:#232923;border-color:var(--gv8-gold)}
.gv8s-model-index{display:block;color:var(--gv8-gold);font:500 13px/1.4 var(--gv8-display);letter-spacing:.09em;margin-bottom:29px}
.gv8n-site .gv8s-model-tile h3{font-size:clamp(27px,2.5vw,36px);line-height:1.2;min-height:2.4em;text-wrap:balance;text-transform:uppercase;letter-spacing:.008em;overflow-wrap:anywhere;margin:0 0 16px}
.gv8s-model-copy{font-size:14px;line-height:1.75;color:#bfc4bc;overflow-wrap:anywhere;padding-bottom:24px}
.gv8s-model-copy p:last-child{margin-bottom:0}
.gv8s-model-link{margin-top:auto;border-top:1px solid #ffffff15;padding-top:18px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:#d7bd89;font-size:13px;font-weight:700}
.gv8s-model-icon{width:32px;height:32px;flex:0 0 32px;display:grid;place-items:center;border:1px solid #736348;font-size:20px;font-weight:400;line-height:1;transition:background .2s,color .2s}
.gv8s-model-tile:hover .gv8s-model-icon{background:var(--gv8-gold);border-color:var(--gv8-gold);color:#171a18}
/* Contact photo starts beside the title, with a badge crossing its lower left edge. */
.gv8s-contact-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.06fr);grid-template-areas:"intro media" "info media";grid-template-rows:auto 1fr;column-gap:clamp(32px,5vw,70px);row-gap:30px;align-items:start}
.gv8s-contact-layout>.gv8n-contact-intro{grid-area:intro;display:block;margin:0;padding:0;border:0}
.gv8s-contact-layout>.gv8n-contact-info{grid-area:info;min-width:0}
.gv8s-contact-media{grid-area:media;position:relative;min-width:0;margin-top:64px;padding-bottom:24px}
.gv8s-contact-layout .gv8n-contact-photo{width:100%;height:auto;aspect-ratio:1.08;min-height:390px;max-height:none;margin:0;overflow:hidden}
.gv8s-contact-media>.gv8n-contact-identity{position:absolute;z-index:2;bottom:0;left:calc(-1 * min(48px,3vw));width:180px;min-width:0;max-width:180px;margin:0;padding:14px 20px;background:#20241ff5;border:1px solid #85734d;box-shadow:0 9px 24px #0005;pointer-events:none}
.gv8s-contact-media>.gv8n-contact-identity img{width:100%;max-height:91px;height:auto;margin:0}
.gv8s-contact-layout .gv8n-contact-intro p{max-width:100%}
@media(max-width:1000px){.gv8s-model-tiles{gap:15px}.gv8s-model-tile>a{padding:25px 22px;min-height:310px}}
@media(max-width:860px){
 .gv8s-contact-layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"intro" "info" "media";grid-template-rows:auto auto auto;gap:27px}
 .gv8s-contact-media{margin-top:5px;max-width:640px;width:100%;justify-self:center}
 .gv8s-contact-layout .gv8n-contact-photo{min-height:0;aspect-ratio:1.15}
 .gv8s-contact-media>.gv8n-contact-identity{left:16px;width:165px;padding:12px 17px}
}
@media(max-width:700px){
 .gv8s-model-tiles{grid-template-columns:minmax(0,1fr);gap:15px}
 .gv8s-model-tile>a{min-height:240px;padding:25px 23px}
 .gv8s-model-index{margin-bottom:21px}
 .gv8n-site .gv8s-model-tile h3{font-size:31px}
 .gv8s-model-copy{padding-bottom:21px}
 .gv8s-contact-media>.gv8n-contact-identity{left:12px;width:145px;padding:11px 15px}
 .gv8s-contact-layout .gv8n-contact-photo{aspect-ratio:1.03}
 .gv8s-contact-layout .gv8n-contact-photo figcaption{padding-left:52%;padding-right:14px}
}
@media(prefers-reduced-motion:reduce){.gv8s-model-tile,.gv8s-model-icon{transition:none}}
.gv8s-contact-layout .gv8n-contact-photo .gv8n-contact-sign{max-width:100%;width:190px;height:auto}

@media(max-width:360px){.gv8s-contact-media>.gv8n-contact-identity{width:130px}}

/* Social symbols use their recognisable brand silhouettes. */
.gv8s-social a svg{width:19px;height:19px;display:block}
.gv8n-mobile-social .gv8s-social a svg{width:21px;height:21px}
.gv8s-social a{opacity:1;color:#d7bd86}
.gv8s-social a:hover,.gv8s-social a:focus-visible{color:#f3d697}
/* Original benefit silhouettes share the theme's gold colour. */
.gv8s-reason-symbol{display:block;width:76px;height:65px;background:var(--gv8-gold);-webkit-mask-image:var(--gv8-icon),var(--gv8-icon),var(--gv8-icon);mask-image:var(--gv8-icon),var(--gv8-icon),var(--gv8-icon);-webkit-mask-composite:source-over;mask-composite:add;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}
.gv8s-reason-symbol img{display:none}
.gv8s-contact-lead>span{display:block}
@media(max-width:600px){.gv8s-reason-symbol{width:57px;height:46px}}
@supports not (mask-image:none){.gv8s-reason-symbol{background:none;-webkit-mask-image:none;mask-image:none}.gv8s-reason-symbol img{display:block;filter:brightness(0) saturate(100%) invert(77%) sepia(27%) saturate(486%) hue-rotate(1deg) brightness(89%) contrast(88%)}}
