/* ==========================================================
   TAPOVAN LOCATION PAGE
   Page-specific layer. Load AFTER ../css/style.css.
   Does not redefine global body, header, footer, or site variables.
   ========================================================== */

.tp-section{width:min(1260px,calc(100% - 80px));margin-inline:auto;padding:110px 0}
.tp-eyebrow{margin:0 0 20px;color:var(--color-gold-light);font-size:11px;font-weight:700;letter-spacing:.28em;line-height:1.4}
.tp-gold-word,.tp-intro h2 span,.tp-section-head h2 span,.tp-corners-copy h2 span,.tp-profile-heading h2 span,.tp-stays h2 span,.tp-hub h2 span,.tp-faq h2 span,.tp-final h2 span{color:var(--color-gold-light);font-style:italic}
.tp-btn{display:inline-flex;align-items:center;justify-content:center;gap:16px;min-height:52px;padding:14px 26px;border:1px solid var(--color-gold);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;transition:transform .22s ease,background .22s ease,box-shadow .22s ease,color .22s ease}
.tp-btn:hover{transform:translateY(-2px)}
.tp-btn-gold{background:linear-gradient(135deg,#ead17c,#c5a143);color:#11100d;box-shadow:0 8px 26px rgba(201,166,70,.1)}
.tp-btn-outline{background:transparent;color:var(--color-text)}
.tp-btn-outline:hover{background:rgba(201,166,70,.08);color:var(--color-gold-light)}

/* HERO */
.tp-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:calc(100vh - var(--header-height));background:#090909}
.tp-hero-visual{position:relative;min-height:700px;overflow:hidden;border-right:1px solid rgba(201,166,70,.14)}
.tp-hero-visual img{width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.72) brightness(.72)}
.tp-hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,5,5,.12),rgba(5,5,5,.5)),linear-gradient(0deg,rgba(5,5,5,.7),transparent 40%)}
.tp-hero-visual:after{content:"";position:absolute;inset:16px;border:1px solid rgba(228,199,108,.18);pointer-events:none}
.tp-hero-location{position:absolute;z-index:2;left:7%;bottom:28px;color:var(--color-gold-light);font-size:10px;font-weight:700;letter-spacing:.25em}
.tp-hero-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(60px,8vw,130px) clamp(44px,8vw,120px)}
.tp-hero-copy h1{margin:0;color:#f4efe3;font-family:var(--font-heading);font-size:clamp(54px,5.4vw,84px);font-weight:400;line-height:.94;letter-spacing:-.045em}
.tp-hero-intro{max-width:650px;margin:38px 0 36px;color:#c7c0b3;font-size:16px;line-height:1.95}
.tp-hero-actions{display:flex;flex-wrap:wrap;gap:12px}

/* INTRO */
.tp-intro{padding-top:72px}
.tp-breadcrumb{display:flex;gap:10px;align-items:center;margin-bottom:72px;color:#8f897f;font-size:12px;letter-spacing:.04em}
.tp-breadcrumb a{color:var(--color-gold-light);font-weight:700}.tp-breadcrumb strong{font-weight:400}
.tp-intro-grid{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:clamp(50px,9vw,140px);align-items:start}
.tp-intro h2,.tp-section-head h2,.tp-corners-copy h2,.tp-profile-heading h2,.tp-stays h2,.tp-hub h2,.tp-faq h2,.tp-final h2{margin:0;color:#f3eee2;font-family:var(--font-heading);font-weight:400;line-height:.98;letter-spacing:-.035em}
.tp-intro h2{font-size:clamp(48px,5vw,72px)}
.tp-copy{max-width:760px}.tp-copy p{margin:0 0 24px;color:#bdb6ab;font-size:15px;line-height:1.95}
.tp-link-row,.tp-profile-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.tp-main-link{display:inline-flex;align-items:center;gap:12px;padding:12px 16px;border:1px solid rgba(201,166,70,.28);background:rgba(201,166,70,.035);color:var(--color-gold-light);font-size:12px;font-weight:700;letter-spacing:.02em;transition:border-color .2s ease,background .2s ease,transform .2s ease}
.tp-main-link:hover{border-color:rgba(228,199,108,.7);background:rgba(201,166,70,.08);transform:translateY(-2px)}

/* AREAS */
.tp-areas{max-width:none;width:100%;padding-inline:max(40px,calc((100% - 1260px)/2));background:#101010;border-top:1px solid rgba(201,166,70,.13)}
.tp-section-head{display:flex;align-items:end;justify-content:space-between;gap:50px;margin-bottom:60px}.tp-section-head-wide>div{min-width:0}.tp-section-head h2{font-size:clamp(50px,5.2vw,76px)}
.tp-section-head>p{max-width:390px;margin:0;color:#a9a298;font-size:14px;line-height:1.9}
.tp-area-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid rgba(201,166,70,.18);border-left:1px solid rgba(201,166,70,.18)}
.tp-area-item{min-height:250px;padding:42px 34px;border-right:1px solid rgba(201,166,70,.18);border-bottom:1px solid rgba(201,166,70,.18);background:#0c0c0c}
.tp-number{display:block;margin-bottom:44px;color:var(--color-gold-light);font-size:11px;font-weight:700;letter-spacing:.2em}.tp-area-item h3{margin:0 0 10px;color:#eee7dc;font-family:var(--font-heading);font-size:25px;font-weight:400}.tp-mini-label{display:block;margin-bottom:20px;color:var(--color-gold);font-size:9px;font-weight:700;letter-spacing:.18em}.tp-area-item p{margin:0;color:#aaa49b;font-size:13px;line-height:1.85}

/* CORNERS */
.tp-corners{display:grid;grid-template-columns:1.08fr .92fr;min-height:620px;background:#090909;border-top:1px solid rgba(201,166,70,.13)}
.tp-corners-image{min-height:620px;overflow:hidden}.tp-corners-image img{width:100%;height:100%;object-fit:cover;filter:brightness(.62) saturate(.72)}
.tp-corners-copy{display:flex;flex-direction:column;justify-content:center;padding:90px clamp(44px,8vw,130px)}.tp-corners-copy h2{font-size:clamp(48px,5vw,72px)}.tp-corners-copy>p:not(.tp-eyebrow){max-width:600px;margin:36px 0;color:#bcb5aa;font-size:15px;line-height:1.95}.tp-corners-copy .tp-main-link{align-self:flex-start}

/* PROFILES */
.tp-profiles{padding-top:88px;padding-bottom:100px}.tp-profile-heading{text-align:center;margin-bottom:46px}.tp-profile-heading h2{font-size:clamp(48px,5vw,72px)}.tp-profile-heading>p:last-child{max-width:650px;margin:20px auto 0;color:#a9a39a;font-size:14px;line-height:1.8}
.tp-profile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.tp-profile-card{overflow:hidden;border:1px solid rgba(201,166,70,.2);background:#0f0f0e;min-width:0;transition:border-color .25s ease,transform .25s ease}.tp-profile-card:hover{border-color:rgba(228,199,108,.55);transform:translateY(-3px)}
.tp-profile-card>img{display:block;width:100%;height:178px;object-fit:cover;object-position:center 25%;filter:saturate(.82) brightness(.86)}
.tp-profile-content{padding:15px 16px 16px}.tp-profile-content h3{margin:0 0 10px;color:#f1eadf;font-family:var(--font-heading);font-size:23px;font-weight:400;line-height:1.05}.tp-profile-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.tp-profile-tags span{display:inline-flex;align-items:center;min-height:22px;padding:4px 8px;border:1px solid rgba(201,166,70,.24);border-radius:999px;background:rgba(201,166,70,.055);color:#cfc3a5;font-size:9px;font-weight:700;letter-spacing:.04em;white-space:nowrap}.tp-profile-content>a{color:var(--color-gold-light);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.tp-profile-links{justify-content:center;margin-top:30px}

/* STAYS */
.tp-stays{background:#101010;max-width:none;width:100%;padding-inline:max(40px,calc((100% - 1260px)/2));border-top:1px solid rgba(201,166,70,.13)}.tp-stays h2{font-size:clamp(45px,4.8vw,68px)}.tp-stays-grid{display:grid;grid-template-columns:.92fr 1.08fr;gap:60px;align-items:stretch}.tp-stay-list{border-left:1px solid var(--color-border)}.tp-stay-list article{padding:20px 26px;border-bottom:1px solid rgba(201,166,70,.16)}.tp-stay-list article:first-child{border-top:1px solid rgba(201,166,70,.16)}.tp-stay-list h3{margin:0 0 7px;color:#eee7dc;font-family:var(--font-heading);font-size:21px;font-weight:400}.tp-stay-list p{margin:0;color:#9f998f;font-size:13px;line-height:1.75}.tp-stay-image{min-height:400px;overflow:hidden}.tp-stay-image img{width:100%;height:100%;object-fit:cover;filter:brightness(.58) saturate(.7)}.tp-stay-note{margin:20px 0 0;color:#77736c;font-size:11px;line-height:1.7}

/* HUB */
.tp-hub{padding:120px 20px;text-align:center;background:radial-gradient(circle at 50% 0,rgba(201,166,70,.08),transparent 46%),#090909;border-top:1px solid rgba(201,166,70,.15)}.tp-hub h2{font-size:clamp(50px,5vw,76px)}.tp-hub>p:not(.tp-eyebrow){max-width:720px;margin:28px auto 36px;color:#a9a39a;font-size:15px;line-height:1.9}

/* FAQ */
.tp-faq{background:#0b0b0b;border-top:1px solid rgba(201,166,70,.15)}.tp-faq-grid{display:grid;grid-template-columns:.72fr 1.28fr;gap:80px}.tp-faq h2{font-size:clamp(48px,5vw,72px)}.tp-faq-list{border-top:1px solid rgba(201,166,70,.18)}.tp-faq-list details{border-bottom:1px solid rgba(201,166,70,.18)}.tp-faq-list summary{position:relative;padding:25px 45px 25px 0;color:#eee7dc;font-family:var(--font-heading);font-size:20px;line-height:1.45;cursor:pointer;list-style:none}.tp-faq-list summary::-webkit-details-marker{display:none}.tp-faq-list summary:after{content:"+";position:absolute;right:2px;top:50%;transform:translateY(-50%);color:var(--color-gold-light);font-family:Arial,sans-serif;font-size:22px}.tp-faq-list details[open] summary:after{content:"−"}.tp-faq-list p{margin:0;padding:0 0 22px;color:#aaa39a;font-size:13px;line-height:1.85}

/* FINAL */
.tp-final{padding:120px 20px;text-align:center;background:#101010;border-top:1px solid rgba(201,166,70,.15)}.tp-final h2{font-size:clamp(48px,5vw,72px)}.tp-final>p:not(.tp-eyebrow){max-width:690px;margin:28px auto 38px;color:#a9a39a;font-size:15px;line-height:1.9}.tp-final .tp-btn{min-width:155px}

/* FOOTER: preserve the existing site's footer styling, only extend quick links */
.footer-nav a,.footer-legal a{display:block}

/* TABLET */
@media (min-width:601px) and (max-width:1000px){
    .tp-hero{grid-template-columns:1fr}.tp-hero-visual{min-height:520px}.tp-hero-copy{padding:70px 8vw}.tp-area-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tp-profile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tp-profile-card>img{height:240px}.tp-corners{grid-template-columns:1fr}.tp-corners-image{min-height:480px}.tp-stays-grid,.tp-faq-grid{grid-template-columns:1fr}.tp-stay-image{min-height:460px}
}

/* MOBILE */
@media (max-width:600px){
    .tp-section{width:calc(100% - 36px);padding:72px 0}.tp-hero{grid-template-columns:1fr}.tp-hero-visual{min-height:470px}.tp-hero-copy{padding:62px 22px 72px}.tp-hero-copy h1{font-size:clamp(46px,13vw,62px)}.tp-hero-intro{font-size:14px;margin:28px 0}.tp-hero-actions{display:grid;grid-template-columns:1fr}.tp-btn{width:100%}
    .tp-intro{padding-top:45px}.tp-breadcrumb{margin-bottom:45px;font-size:11px;flex-wrap:wrap}.tp-intro-grid{grid-template-columns:1fr;gap:42px}.tp-intro h2,.tp-section-head h2,.tp-corners-copy h2,.tp-profile-heading h2,.tp-stays h2,.tp-hub h2,.tp-faq h2,.tp-final h2{font-size:clamp(44px,13vw,58px)}.tp-link-row,.tp-profile-links{display:grid;grid-template-columns:1fr}
    .tp-areas{padding-inline:18px}.tp-section-head{display:block;margin-bottom:38px}.tp-section-head>p{margin-top:22px}.tp-area-grid{grid-template-columns:1fr}.tp-area-item{min-height:auto;padding:30px 24px}.tp-number{margin-bottom:30px}
    .tp-corners{grid-template-columns:1fr}.tp-corners-image{min-height:390px}.tp-corners-copy{padding:70px 24px}.tp-corners-copy>p:not(.tp-eyebrow){margin:28px 0}
    .tp-profiles{padding-top:72px}.tp-profile-grid{grid-template-columns:1fr;gap:16px}.tp-profile-card>img{height:330px}.tp-profile-content{padding:17px}.tp-profile-content h3{font-size:25px}
    .tp-stays{padding-inline:18px}.tp-stays-grid{grid-template-columns:1fr;gap:30px}.tp-stay-image{min-height:390px}.tp-stay-list article{padding:20px}
    .tp-hub{padding:90px 20px}.tp-faq-grid{grid-template-columns:1fr;gap:42px}.tp-faq-list summary{font-size:18px;padding:22px 40px 22px 0}.tp-final{padding:90px 20px}
}

@media (prefers-reduced-motion:reduce){.tp-btn,.tp-main-link,.tp-profile-card{transition:none}}


/* Approved six-profile layout: compact cards, no paragraph text */
.tp-profile-heading>p{display:none}
.tp-profile-grid{gap:16px}
.tp-profile-card>img{height:205px}
.tp-profile-content{padding:13px 14px 15px}
.tp-profile-content>a{display:none}
.tp-profile-tags{margin-bottom:0}
.tp-profile-tags span{font-size:9px}
@media(min-width:1001px){
 .tp-profiles{padding-top:72px;padding-bottom:82px}
 .tp-profile-heading{margin-bottom:30px}
 .tp-profile-heading h2{font-size:clamp(44px,4.4vw,64px)}
}
@media(max-width:1000px) and (min-width:601px){
 .tp-profile-card>img{height:230px}
}

/* Integration safety: keep this stylesheet scoped to Tapovan page sections. */
.tp-hero,
.tp-section,
.tp-corners,
.tp-hub,
.tp-final {
    position: relative;
}

/* Accessibility: page links and controls remain visibly focusable. */
.tp-btn:focus-visible,
.tp-main-link:focus-visible,
.tp-faq-list summary:focus-visible {
    outline: 2px solid var(--color-gold-light);
    outline-offset: 4px;
}


/* ==========================================================
   TAPOVAN HERO POSITION FIX
   The shared stylesheet applies generic 100px section padding
   to every section except .hero. This page uses .tp-hero, so
   explicitly remove that inherited spacing and make the hero
   begin immediately after the sticky header.
========================================================== */
main > section.tp-hero {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

.tp-hero {
    min-height: clamp(560px, calc(100svh - var(--header-height)), 760px);
    align-items: stretch;
}

.tp-hero-visual {
    min-height: 0;
    height: 100%;
}

.tp-hero-copy {
    min-width: 0;
    padding: clamp(36px, 5vw, 72px) clamp(32px, 6vw, 90px);
}

/* Tablet: keep the stacked layout compact so the headline enters
   the first viewport without a very tall image pushing it down. */
@media (min-width: 601px) and (max-width: 1000px) {
    .tp-hero {
        min-height: 0;
    }

    .tp-hero-visual {
        min-height: clamp(340px, 48svh, 440px);
        height: auto;
    }

    .tp-hero-copy {
        padding: 46px 8vw 54px;
    }
}

/* Mobile: remove inherited section padding and shorten the image
   so the title and introductory copy are visible sooner. */
@media (max-width: 600px) {
    main > section.tp-hero {
        padding: 0;
    }

    .tp-hero {
        min-height: 0;
    }

    .tp-hero-visual {
        min-height: clamp(220px, 34svh, 300px);
        height: auto;
    }

    .tp-hero-copy {
        padding: 32px 22px 40px;
    }

    .tp-hero-copy .tp-eyebrow {
        margin-bottom: 12px;
    }

    .tp-hero-copy h1 {
        font-size: clamp(40px, 10.5vw, 54px);
        line-height: 0.98;
    }

    .tp-hero-intro {
        margin: 18px 0 22px;
        line-height: 1.75;
    }
}

/* ==========================================================
   TAPOVAN STAYS — IMAGE HEIGHT MATCHES THE CONTENT
   Desktop image follows the actual height of the four stay notes.
   Tablet/mobile use a shorter landscape image to avoid a tall block.
========================================================== */
.tp-stays-grid {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.82fr);
    align-items: stretch;
    gap: clamp(24px, 4vw, 52px);
}

.tp-stay-image {
    position: relative;
    min-height: 0;
    height: auto;
    align-self: stretch;
    overflow: hidden;
}

.tp-stay-image img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

@media (min-width: 601px) and (max-width: 1000px) {
    .tp-stays-grid {
        grid-template-columns: 1fr;
        gap: 26px;
    }

    .tp-stay-image {
        height: clamp(220px, 32vw, 340px);
        min-height: 0;
    }
}

@media (max-width: 600px) {
    .tp-stays-grid {
        grid-template-columns: 1fr;
        gap: 22px;
    }

    .tp-stay-image {
        height: clamp(180px, 56vw, 240px);
        min-height: 0;
    }
}


/* ==========================================================
   TAPOVAN — FINAL SHARED CONTENT ALIGNMENT
   One responsive grid shared with the existing header gutters.
   Background bands stay full-width; their content aligns inside.
   This layer only adjusts layout width/alignment, not colours,
   typography, content, links, or interactions.
========================================================== */
:root {
    --tp-layout-max: 1380px;
    --tp-layout-gutter: max(
        clamp(22px, 8.7vw, 154px),
        calc((100vw - var(--tp-layout-max)) / 2)
    );
}

/* Match the site header's inner left/right alignment to all page content. */
.site-header {
    padding-inline: var(--tp-layout-gutter);
}

/* Standard content sections: identical left/right edges. */
.tp-section {
    width: min(
        var(--tp-layout-max),
        calc(100% - (2 * var(--tp-layout-gutter)))
    );
    max-width: var(--tp-layout-max);
    margin-inline: auto;
    padding-inline: 0;
}

/* Full-width section backgrounds with content aligned to the shared grid. */
.tp-areas,
.tp-stays,
.tp-hub,
.tp-final {
    padding-inline: var(--tp-layout-gutter);
}

/* Full-bleed hero background, with the image and copy on the shared grid. */
main > section.tp-hero {
    display: grid;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    grid-template-columns:
        var(--tp-layout-gutter)
        minmax(0, 1fr)
        minmax(0, 1fr)
        var(--tp-layout-gutter);
}

.tp-hero-visual {
    grid-column: 2;
    min-width: 0;
}

.tp-hero-copy {
    grid-column: 3;
    min-width: 0;
}

/* Full-width dark band; its image and text stop at the same content edges. */
.tp-corners {
    width: 100%;
    max-width: none;
    margin-inline: 0;
    grid-template-columns:
        var(--tp-layout-gutter)
        minmax(0, 1.08fr)
        minmax(0, 0.92fr)
        var(--tp-layout-gutter);
}

.tp-corners-image {
    grid-column: 2;
    min-width: 0;
}

.tp-corners-copy {
    grid-column: 3;
    min-width: 0;
}

/* FAQ keeps its full-width background while the two-column content aligns. */
.tp-faq {
    width: 100%;
    max-width: none;
    margin-inline: 0;
    padding-inline: var(--tp-layout-gutter);
}

.tp-faq-grid {
    width: min(var(--tp-layout-max), 100%);
    max-width: var(--tp-layout-max);
    margin-inline: auto;
}

/* Footer content follows the same maximum width and side edges. */
.site-footer .footer-grid {
    width: min(
        var(--tp-layout-max),
        calc(100% - (2 * var(--tp-layout-gutter)))
    );
    max-width: var(--tp-layout-max);
    margin-inline: auto;
}

/* Tablet: stacked split sections remain inside the shared grid. */
@media (min-width: 601px) and (max-width: 1000px) {
    .tp-hero {
        grid-template-columns:
            var(--tp-layout-gutter)
            minmax(0, 1fr)
            var(--tp-layout-gutter);
    }

    .tp-hero-visual,
    .tp-hero-copy {
        grid-column: 2;
    }

    .tp-hero-visual { grid-row: 1; }
    .tp-hero-copy { grid-row: 2; }

    .tp-corners {
        grid-template-columns:
            var(--tp-layout-gutter)
            minmax(0, 1fr)
            var(--tp-layout-gutter);
    }

    .tp-corners-image,
    .tp-corners-copy {
        grid-column: 2;
    }

    .tp-corners-image { grid-row: 1; }
    .tp-corners-copy { grid-row: 2; }
}

/* Mobile gutters follow the existing 24px / 20px header padding. */
@media (max-width: 768px) {
    :root { --tp-layout-gutter: 24px; }

    .site-header { padding-inline: 24px; }

    .tp-hero {
        grid-template-columns:
            var(--tp-layout-gutter)
            minmax(0, 1fr)
            var(--tp-layout-gutter);
    }

    .tp-hero-visual,
    .tp-hero-copy {
        grid-column: 2;
    }

    .tp-hero-visual { grid-row: 1; }
    .tp-hero-copy { grid-row: 2; }

    .tp-corners {
        grid-template-columns:
            var(--tp-layout-gutter)
            minmax(0, 1fr)
            var(--tp-layout-gutter);
    }

    .tp-corners-image,
    .tp-corners-copy {
        grid-column: 2;
    }

    .tp-corners-image { grid-row: 1; }
    .tp-corners-copy { grid-row: 2; }
}

@media (max-width: 480px) {
    :root { --tp-layout-gutter: 20px; }
    .site-header { padding-inline: 20px; }
}









/* =========================================
   FAQ — HEADER WIDTH ALIGNMENT FIX
========================================= */

main > section.tp-faq.tp-section {
    width: 100%;
    max-width: none;
    margin-inline: 0;
    padding-inline: clamp(22px, 8.7vw, 154px);
}

.tp-faq-grid {
    width: min(100%, 1380px);
    max-width: 1380px;
    margin-inline: auto;
}

/* Tablet */
@media (max-width: 768px) {
    main > section.tp-faq.tp-section {
        padding-inline: 24px;
    }
}

/* Mobile */
@media (max-width: 480px) {
    main > section.tp-faq.tp-section {
        padding-inline: 20px;
    }
}















/* =========================================
   PEACEFUL CORNERS — COMPACT HEIGHT FIX
========================================= */

/* Desktop: section height follows its content */
.tp-corners {
    min-height: 0;
    align-items: stretch;
}

.tp-corners-image {
    min-height: 0;
    height: auto;
}

.tp-corners-image img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: cover;
}

.tp-corners-copy {
    min-height: 0;
    padding-top: clamp(42px, 4.5vw, 64px);
    padding-bottom: clamp(42px, 4.5vw, 64px);
}

/* Tablet */
@media (min-width: 601px) and (max-width: 1000px) {

    .tp-corners-image {
        height: 320px;
        min-height: 0;
    }

    .tp-corners-copy {
        padding: 44px 28px;
    }
}

/* Mobile */
@media (max-width: 600px) {

    .tp-corners-image {
        height: 240px;
        min-height: 0;
    }

    .tp-corners-copy {
        padding: 48px 20px;
    }
}






/* =========================================
   QUIETER CORNERS — FINAL WIDTH & ALIGNMENT
========================================= */

.tp-corners {
    min-height: 0;
    align-items: stretch;
    grid-template-columns:
        var(--tp-layout-gutter)
        minmax(0, 0.95fr)
        minmax(0, 1.05fr)
        var(--tp-layout-gutter);
}

.tp-corners-image {
    grid-column: 2;
    min-width: 0;
    min-height: 0;
}

.tp-corners-image img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 440px;
    object-fit: cover;
}

.tp-corners-copy {
    grid-column: 3;
    min-width: 0;
    min-height: 0;
    justify-content: center;
    padding: 48px clamp(24px, 3.2vw, 48px);
}

.tp-corners-copy h2 {
    max-width: 100%;
    font-size: clamp(42px, 4vw, 58px);
    line-height: 1.04;
    letter-spacing: -0.04em;
    text-wrap: balance;
}

.tp-corners-copy > p:not(.tp-eyebrow) {
    width: 100%;
    max-width: 650px;
    margin: 22px 0 26px;
    font-size: 14px;
    line-height: 1.8;
}

.tp-corners-copy .tp-main-link {
    align-self: flex-start;
}

/* TABLET */
@media (min-width: 601px) and (max-width: 1000px) {
    .tp-corners {
        grid-template-columns:
            var(--tp-layout-gutter)
            minmax(0, 1fr)
            var(--tp-layout-gutter);
    }

    .tp-corners-image,
    .tp-corners-copy {
        grid-column: 2;
    }

    .tp-corners-image {
        height: 320px;
    }

    .tp-corners-image img {
        min-height: 0;
    }

    .tp-corners-copy {
        padding: 42px 28px;
    }

    .tp-corners-copy h2 {
        font-size: 46px;
    }
}

/* MOBILE */
@media (max-width: 600px) {
    .tp-corners {
        grid-template-columns: minmax(0, 1fr);
    }

    .tp-corners-image,
    .tp-corners-copy {
        grid-column: 1;
    }

    .tp-corners-image {
        height: 240px;
    }

    .tp-corners-image img {
        min-height: 0;
    }

    .tp-corners-copy {
        padding: 40px 20px;
    }

    .tp-corners-copy h2 {
        font-size: 42px;
    }
}







/* =========================================
   TAPOVAN HERO — FINAL ALIGNMENT
========================================= */

main > section.tp-hero {
    min-height: 0;
    grid-template-columns:
        var(--tp-layout-gutter)
        minmax(0, 0.88fr)
        minmax(0, 1.12fr)
        var(--tp-layout-gutter);
    align-items: stretch;
}

.tp-hero-visual {
    grid-column: 2;
    min-width: 0;
    min-height: clamp(500px, 48vw, 640px);
}

.tp-hero-visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.tp-hero-copy {
    grid-column: 3;
    min-width: 0;
    padding: 48px clamp(22px, 2.8vw, 40px);
    justify-content: center;
}

.tp-hero-copy h1 {
    font-size: clamp(46px, 4.1vw, 58px);
    line-height: 1.02;
    letter-spacing: -0.04em;
    text-wrap: balance;
}

.tp-hero-intro {
    max-width: 560px;
    margin: 26px 0;
    font-size: 15px;
    line-height: 1.8;
}

/* Tablet */
@media (min-width: 601px) and (max-width: 1000px) {
    .tp-hero {
        grid-template-columns:
            var(--tp-layout-gutter)
            minmax(0, 1fr)
            var(--tp-layout-gutter);
    }

    .tp-hero-visual,
    .tp-hero-copy {
        grid-column: 2;
    }

    .tp-hero-visual {
        grid-row: 1;
        min-height: 400px;
    }

    .tp-hero-copy {
        grid-row: 2;
        padding: 48px 28px;
    }
}

/* Mobile */
@media (max-width: 600px) {
    .tp-hero {
        grid-template-columns:
            var(--tp-layout-gutter)
            minmax(0, 1fr)
            var(--tp-layout-gutter);
    }

    .tp-hero-visual {
        grid-row: 1;
        min-height: 320px;
    }

    .tp-hero-copy {
        grid-row: 2;
        padding: 42px 20px 48px;
    }

    .tp-hero-copy h1 {
        font-size: clamp(42px, 11vw, 54px);
    }
}



/* =========================================
   TAPOVAN HERO — FINAL RESPONSIVE SYSTEM
   Desktop: Split layout
   Tablet: Image above content
   Mobile: Image above content
========================================= */

/* DESKTOP — 1001px and above */
@media (min-width: 1001px) {

    main > section.tp-hero {
        display: grid;
        width: 100%;
        max-width: none;
        min-height: 0;
        margin: 0;
        padding: 0;

        grid-template-columns:
            var(--tp-layout-gutter)
            minmax(0, 0.88fr)
            minmax(0, 1.12fr)
            var(--tp-layout-gutter);

        align-items: stretch;
    }

    .tp-hero-visual {
        grid-column: 2;
        grid-row: 1;
        min-width: 0;
        min-height: clamp(500px, 48vw, 640px);
    }

    .tp-hero-visual img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .tp-hero-copy {
        grid-column: 3;
        grid-row: 1;
        min-width: 0;
        padding: 48px clamp(22px, 2.8vw, 40px);
        justify-content: center;
    }

    .tp-hero-copy h1 {
        font-size: clamp(46px, 4.1vw, 58px);
        line-height: 1.02;
        letter-spacing: -0.04em;
        text-wrap: balance;
    }

    .tp-hero-intro {
        max-width: 560px;
        margin: 26px 0;
        font-size: 15px;
        line-height: 1.8;
    }
}


/* TABLET — 601px to 1000px */
@media (min-width: 601px) and (max-width: 1000px) {

    main > section.tp-hero {
        display: grid;
        width: 100%;
        max-width: none;
        min-height: 0;
        margin: 0;
        padding: 0;

        grid-template-columns:
            var(--tp-layout-gutter)
            minmax(0, 1fr)
            var(--tp-layout-gutter);

        gap: 0;
    }

    .tp-hero-visual {
        grid-column: 2;
        grid-row: 1;

        width: 100%;
        height: clamp(300px, 42vw, 420px);
        min-height: 0;
    }

    .tp-hero-visual img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center 25%;
    }

    .tp-hero-copy {
        grid-column: 2;
        grid-row: 2;

        width: 100%;
        min-width: 0;
        padding: 42px 0 52px;

        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
    }

    .tp-hero-copy h1 {
        max-width: 760px;
        font-size: clamp(46px, 6vw, 58px);
        line-height: 1.04;
        letter-spacing: -0.04em;
    }

    .tp-hero-intro {
        width: 100%;
        max-width: 720px;
        margin: 24px 0 28px;
        font-size: 15px;
        line-height: 1.85;
    }

    .tp-hero-actions {
        display: flex;
        flex-wrap: wrap;
        gap: 12px;
    }
}


/* MOBILE — 600px and below */
@media (max-width: 600px) {

    main > section.tp-hero {
        display: grid;
        width: 100%;
        max-width: none;
        min-height: 0;
        margin: 0;
        padding: 0;

        grid-template-columns:
            var(--tp-layout-gutter)
            minmax(0, 1fr)
            var(--tp-layout-gutter);

        gap: 0;
    }

    .tp-hero-visual {
        grid-column: 2;
        grid-row: 1;

        width: 100%;
        height: clamp(250px, 70vw, 330px);
        min-height: 0;

        overflow: hidden;
    }

    .tp-hero-visual img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center 25%;
    }

    .tp-hero-copy {
        grid-column: 2;
        grid-row: 2;

        width: 100%;
        min-width: 0;
        padding: 34px 0 46px;

        display: flex;
        flex-direction: column;
        align-items: flex-start;
    }

    .tp-hero-copy h1 {
        width: 100%;
        max-width: 100%;
        font-size: clamp(36px, 9.7vw, 44px);
        line-height: 1.08;
        letter-spacing: -0.04em;
        text-wrap: balance;
    }

    .tp-hero-intro {
        width: 100%;
        max-width: 100%;
        margin: 20px 0 24px;
        font-size: 14px;
        line-height: 1.8;
    }

    .tp-hero-actions {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        width: 100%;
        gap: 12px;
    }

    .tp-hero-actions .tp-btn {
        width: 100%;
    }
}
