/**
 * TNT CMS — Theme: Realty 365
 * Set active_theme = 'theme-realty365' in Design → Theme & Style.
 *
 * Mimics the look & feel of realty365llc.com (originally a BoldTrail/
 * Inside Real Estate IDX site):
 *   • Raleway typography
 *   • Gold accent  #BA9F4C  on near-white  #F9F9F8
 *   • Square (0-radius) buttons, weight 500
 *   • Full-bleed background hero with centered title + search bar
 *   • Black call-to-action band
 *   • Alternating 50/50 photo + panel feature rows
 *
 * Pairs with templates:
 *   realty-home.php      (homepage)
 *   realty-interior.php  (all other pages)
 *
 * Colours still honour Design → Theme & Style (--tnt-* variables) when set,
 * and fall back to the Realty 365 palette below when they are not.
 */

/* -- Fonts (safety net -- _head.php also loads Raleway if set in settings) - */
@import url('https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,400&display=swap');

/* -- Palette ------------------------------------------------------------- */
:root {
    --r365-gold:        #BA9F4C;
    --r365-gold-dark:   #a2883a;
    --r365-ink:         #323232;   /* body text            */
    --r365-bg:          #f9f9f8;   /* page background      */
    --r365-heading:     #2b2b2b;
    --r365-panel-gray:  #6f6f6f;   /* gray feature panels  */
    --r365-black:       #000000;   /* dark CTA band        */
    --r365-footer:      #4a4a4a;
    --r365-red:         #9e1b1b;   /* Contact CTA + header stripe */
    --r365-red-dark:    #7f1414;
    --r365-header-bg:   #A32035;   /* header bg, all pages (forced over the header builder) */

    /* Map Realty palette into TNT variable slots (used by base.css + _head) */
    --tnt-color-primary:   var(--tnt-color-primary,   #BA9F4C);
    --tnt-color-primary-d: var(--tnt-color-primary-d, #a2883a);
    --tnt-color-secondary: var(--tnt-color-secondary, #BA9F4C);
    --tnt-footer-bg:       var(--tnt-footer-bg,       #4a4a4a);
    --tnt-radius:          0px;
}

/* -- Base typography ----------------------------------------------------- */
body {
    font-family: var(--tnt-font-body, "Raleway", Arial, sans-serif);
    color:       var(--tnt-color-text, #323232);
    background:  var(--tnt-color-bg,   #f9f9f8);
    font-size:   var(--tnt-font-size-base, 16px);
    line-height: 1.7;
}
h1, h2, h3, h4, h5, h6 {
    font-family: var(--tnt-font-heading, "Raleway", Arial, sans-serif);
    color:       var(--tnt-color-heading, #2b2b2b);
    font-weight: 600;
}
.container { max-width: var(--tnt-container-width, 1200px); }

/* -- Brand buttons (square, weight 500) ---------------------------------- */
.r365-btn {
    display:          inline-block;
    padding:          10px 26px;
    font-family:      inherit;
    font-size:        1rem;
    font-weight:      500;
    line-height:      1.4;
    text-align:       center;
    text-decoration:  none;
    border:           2px solid transparent;
    border-radius:    0;
    cursor:           pointer;
    transition:       background .18s, color .18s, border-color .18s;
}
.r365-btn--gold        { background: var(--r365-gold); color: #fff; border-color: var(--r365-gold); }
.r365-btn--gold:hover  { background: var(--r365-gold-dark); border-color: var(--r365-gold-dark); color: #fff; }
.r365-btn--white       { background: #fff; color: #323232; border-color: #fff; }
.r365-btn--white:hover { background: transparent; color: #fff; border-color: #fff; }
.r365-btn--outline       { background: transparent; color: #fff; border-color: rgba(255,255,255,.75); }
.r365-btn--outline:hover { background: #fff; color: #323232; border-color: #fff; }

/* == HERO ================================================================= */
.r365-hero {
    position:            relative;
    min-height:          72vh;
    display:             flex;
    align-items:         center;
    justify-content:     center;
    background-color:    #2b2b2b;
    background-size:     cover;
    background-position: center;
    background-repeat:   no-repeat;
    background-attachment: fixed;   /* parallax feel like the original */
    text-align:          center;
}
/* (10/14/26) Phones/tablets: fixed backgrounds force full repaints on scroll (iOS ignores them anyway) */
@media (max-width: 991.98px) {
    .r365-hero { background-attachment: scroll; min-height: 60vh; }
}
.r365-hero__overlay { position: absolute; inset: 0; background: rgba(0,0,0,.28); z-index: 1; }
.r365-hero__inner   { position: relative; z-index: 2; width: 100%; max-width: 820px; padding: 48px 20px 36px; }
.r365-hero__title {
    color:          #fff !important;
    font-size:      clamp(2rem, 4.5vw, 2.75rem);
    font-weight:    600;
    letter-spacing: .5px;
    text-shadow:    0 1px 12px rgba(0,0,0,.35);
    margin-bottom:  1.4rem;
}

/* Hero search bar */
.r365-search        { display: flex; width: 100%; box-shadow: 0 6px 24px rgba(0,0,0,.25); }
.r365-search__input {
    flex: 1 1 auto;
    border: none;
    padding: 16px 20px;
    font-family: inherit;
    font-size: 1rem;
    color: #323232;
    background: #fff;
}
.r365-search__input:focus { outline: none; }
.r365-search__btn {
    flex: 0 0 auto;
    border: none;
    background: var(--r365-gold);
    color: #fff;
    font-family: inherit;
    font-weight: 600;
    letter-spacing: .5px;
    padding: 0 34px;
    cursor: pointer;
    transition: background .18s;
}
.r365-search__btn:hover { background: var(--r365-gold-dark); }
.r365-more {
    display: inline-block;
    margin-top: 12px;
    background: var(--r365-gold);
    color: #fff;
    font-size: .85rem;
    padding: 5px 16px;
    border: none;
    cursor: pointer;
}
.r365-more:hover { background: var(--r365-gold-dark); }
.r365-more-panel {
    display: none;
    margin-top: 14px;
    background: rgba(255,255,255,.95);
    padding: 16px;
    text-align: left;
}
.r365-more-panel.open { display: block; }
.r365-more-panel .row > div { margin-bottom: 10px; }
.r365-more-panel select {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #ddd;
    border-radius: 0;
    font-family: inherit;
    background: #fff;
    color: #323232;
}

/* Thin gold divider between hero and the dark band */
.r365-divider { height: 8px; background: var(--r365-gold); }

/* == DARK CTA BAND ======================================================= */
.r365-cta {
    background: var(--r365-black);
    color: #fff;
    text-align: center;
    padding: 52px 0;
}
.r365-cta h2 { color: #fff; font-weight: 600; margin-bottom: .5rem; font-size: clamp(1.5rem, 3vw, 2rem); }
.r365-cta p  { color: rgba(255,255,255,.85); margin-bottom: 1.6rem; }

/* == ALTERNATING FEATURE ROWS ============================================ */
.r365-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    min-height: 420px;
}
.r365-row__media {
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    min-height: 320px;
}
.r365-row__panel {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 56px 8%;
}
.r365-row__panel--gray  { background: var(--r365-panel-gray); color: #fff; }
.r365-row__panel--white { background: #fff; color: #323232; }
.r365-row__panel h2 { font-weight: 600; margin-bottom: 1rem; font-size: clamp(1.4rem, 2.6vw, 1.9rem); }
.r365-row__panel--gray h2 { color: #fff; }
.r365-row__panel p { max-width: 460px; margin-bottom: 1.6rem; }
.r365-row__panel--gray p { color: rgba(255,255,255,.9); }

/* media-right variant: put panel first, media second (desktop) */
.r365-row--media-right .r365-row__media  { order: 2; }
.r365-row--media-right .r365-row__panel  { order: 1; }

/* == "STILL HAVE QUESTIONS" CENTER CTA =================================== */
.r365-questions {
    background: #fff;
    text-align: center;
    padding: 64px 20px;
}
.r365-questions h2 { font-weight: 600; margin-bottom: .75rem; }
.r365-questions p  { max-width: 560px; margin: 0 auto 1.6rem; color: #323232; }

/* == FOOTER (styles the DB-driven / legacy footer to match) ============== */
.tnt-footer          { background: var(--tnt-footer-bg, #4a4a4a); }
.tnt-footer__bottom a,
.tnt-footer__bottom small { color: rgba(255,255,255,.7); }

/* -- Responsive ---------------------------------------------------------- */
@media (max-width: 991.98px) {
    .r365-hero { background-attachment: scroll; min-height: 60vh; }
}
@media (max-width: 767.98px) {
    .r365-row { grid-template-columns: 1fr; }
    .r365-row__media  { order: 1 !important; }
    .r365-row__panel  { order: 2 !important; padding: 44px 24px; }
    .r365-search      { flex-direction: column; }
    .r365-search__btn { padding: 14px 0; }
}

/* The page editor wraps content in an empty <p>; its bottom margin collapses through
   <main> and pushed the hero down, leaving a white strip above it. */
#main > p:empty,
#main > p:has(> br:only-child) { display: none; }

/* Row photos are real <img> elements (SEO filenames + alt text) that cover the media box
   exactly like the old background-image did. !important beats site-wide img rules. */
.r365-row__media { position: relative; overflow: hidden; }
.r365-row__img {
    position: absolute !important; inset: 0 !important;
    width: 100% !important; height: 100% !important; max-width: none !important;
    margin: 0 !important; padding: 0 !important; border: 0 !important;
    object-fit: cover; object-position: center; display: block;
}

/* Responsive video embeds: YouTube / Vimeo iframes pasted into page content fill the
   column width and keep a 16:9 shape (overrides the fixed width="560" height="315"). */
#main iframe[src*="youtube.com"],
#main iframe[src*="youtube-nocookie.com"],
#main iframe[src*="youtu.be"],
#main iframe[src*="player.vimeo.com"] {
    display: block;
    width: 100% !important;
    max-width: 100%;
    height: auto !important;
    aspect-ratio: 16 / 9;
    border: 0;
    margin: 0 auto 1.5rem;
}
/* YouTube Shorts (vertical) — add class="video-vertical" to the iframe in Source view */
#main iframe.video-vertical {
    aspect-ratio: 9 / 16 !important;
    max-width: 400px;
}

/* -- [r365_valuation] seller lead form ---------------------------------- */
.r365-valuation { padding: 3rem 1rem; }
.r365-valuation--white .r365-valuation__inner { background: #fff; border-top: 4px solid var(--r365-gold); box-shadow: 0 2px 14px rgba(0,0,0,.06); }
.r365-valuation--gray  { background: #efeeea; }
.r365-valuation--gray  .r365-valuation__inner { background: #fff; border-top: 4px solid var(--r365-gold); }
.r365-valuation__inner { max-width: 820px; margin: 0 auto; padding: 2.25rem 2rem; }
.r365-valuation h2 { color: var(--r365-gold); text-align: center; margin: 0 0 .5rem; font-size: clamp(1.6rem, 3vw, 2.1rem); }
.r365-valuation__intro { text-align: center; max-width: 620px; margin: 0 auto 1.75rem; }

.r365-valuation .tnt-form { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 1.25rem; }
.r365-valuation .tnt-field { margin: 0; }
.r365-valuation .tnt-field-textarea,
.r365-valuation .tnt-field-submit,
.r365-valuation .tnt-field:has(input[name="address"]) { grid-column: 1 / -1; }
.r365-valuation .tnt-field label { display: block; font-weight: 600; font-size: .9rem; letter-spacing: .02em; margin-bottom: .35rem; color: var(--r365-heading); }
.r365-valuation .tnt-required { color: var(--r365-gold-dark); }
.r365-valuation input:not([type="hidden"]):not([type="radio"]):not([type="checkbox"]):not(.tnt-agent__filter),
.r365-valuation select,
.r365-valuation textarea {
    width: 100%; box-sizing: border-box; padding: .7rem .85rem;
    border: 1px solid #d6d3cc; border-radius: 0; background: #fff;
    font: inherit; color: var(--r365-ink);
}
.r365-valuation input:focus, .r365-valuation select:focus, .r365-valuation textarea:focus {
    outline: none; border-color: var(--r365-gold); box-shadow: 0 0 0 2px rgba(186,159,76,.25);
}
.r365-valuation .tnt-submit {
    display: block; width: 100%; padding: .95rem 1.5rem; border: 0; border-radius: 0;
    background: var(--r365-gold); color: #fff; font: inherit; font-weight: 600;
    text-transform: uppercase; letter-spacing: .05em; cursor: pointer; transition: background .2s;
}
.r365-valuation .tnt-submit:hover { background: var(--r365-gold-dark); }
.r365-valuation .tnt-submit:disabled { opacity: .7; cursor: wait; }
.r365-valuation .tnt-form-messages { padding: 1rem 1.25rem; margin-bottom: 1rem; text-align: center; }
.r365-valuation .tnt-form-messages.tnt-success { background: #f5f0e1; border-left: 4px solid var(--r365-gold); }
.r365-valuation .tnt-form-messages.tnt-error   { background: #fbeaea; border-left: 4px solid #b94a48; }
@media (max-width: 640px) {
    .r365-valuation .tnt-form { grid-template-columns: 1fr; }
    .r365-valuation__inner { padding: 1.75rem 1.25rem; }
}

/* -- Agent picker field (styles ship with includes/agent_picker.php) ----- */
.r365-valuation .tnt-field-agent { grid-column: 1 / -1; }
.r365-valuation .tnt-field-agent label { display: block; font-weight: 600; font-size: .9rem; letter-spacing: .02em; margin-bottom: .35rem; color: var(--r365-heading); }

/* -- [r365_net_sheet] seller net sheet calculator ------------------------ */
.r365-netsheet { padding: 3rem 1rem; }
.r365-netsheet.r365-valuation--gray { background: #efeeea; }
.r365-netsheet__inner { max-width: 1080px; margin: 0 auto; padding: 2.25rem 2rem; }
.r365-netsheet.r365-valuation--white .r365-netsheet__inner,
.r365-netsheet.r365-valuation--gray  .r365-netsheet__inner { background: #fff; border-top: 4px solid var(--r365-gold); box-shadow: 0 2px 14px rgba(0,0,0,.06); }
.r365-netsheet h2 { color: var(--r365-gold); text-align: center; margin: 0 0 .5rem; font-size: clamp(1.6rem, 3vw, 2.1rem); }
.r365-netsheet h3 { font-size: 1.05rem; text-transform: uppercase; letter-spacing: .05em; margin: 1.5rem 0 .75rem; color: var(--r365-heading); }
.r365-netsheet .r365-ns-inputs > h3:first-child,
.r365-netsheet .r365-ns-results > h3:first-child { margin-top: 0; }

.r365-ns-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 2.5rem; align-items: start; }
.r365-ns-inputs label { display: block; font-weight: 600; font-size: .9rem; margin-bottom: 1rem; color: var(--r365-heading); }
.r365-ns-inputs small { display: block; font-weight: 400; font-size: .8rem; color: #777; margin-top: .3rem; line-height: 1.4; }
.r365-ns-inputs input {
    display: block; width: 100%; box-sizing: border-box; margin-top: .35rem; padding: .7rem .85rem;
    border: 1px solid #d6d3cc; border-radius: 0; background: #fff; font: inherit; font-weight: 500; color: var(--r365-ink);
}
.r365-ns-inputs input:focus { outline: none; border-color: var(--r365-gold); box-shadow: 0 0 0 2px rgba(186,159,76,.25); }
.r365-ns-money, .r365-ns-pct { position: relative; display: block; }
.r365-ns-money input { padding-left: 1.6rem; }
.r365-ns-pct input { padding-right: 2rem; }
.r365-ns-money::before, .r365-ns-pct::after {
    position: absolute; top: 50%; transform: translateY(-40%); color: #888; font-weight: 500; pointer-events: none;
}
.r365-ns-money::before { content: "\24"; left: .75rem; }
.r365-ns-pct::after { content: "%"; right: .85rem; }
.r365-ns-more { border-top: 1px solid #e6e3dd; padding-top: 1rem; margin-top: .5rem; }
.r365-ns-more summary { cursor: pointer; font-weight: 600; color: var(--r365-gold-dark); margin-bottom: 1rem; }

.r365-ns-results { background: #f9f9f8; border: 1px solid #e6e3dd; padding: 1.75rem; position: sticky; top: 1rem; }
.r365-ns-net { font-size: clamp(2rem, 4.5vw, 2.8rem); font-weight: 700; color: var(--r365-gold); line-height: 1.1; margin-bottom: 1rem; }
.r365-ns-net.is-negative { color: #b94a48; }
.r365-ns-negative { background: #fbeaea; border-left: 4px solid #b94a48; padding: .75rem 1rem; font-size: .9rem; }
.r365-ns-table { width: 100%; border-collapse: collapse; font-size: .95rem; margin-bottom: 1.25rem; }
.r365-ns-table td { padding: .55rem 0; border-bottom: 1px solid #e6e3dd; }
.r365-ns-table td:last-child { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.r365-ns-table .r365-ns-total td { border-bottom: 0; border-top: 2px solid var(--r365-ink); font-weight: 700; padding-top: .8rem; }
.r365-ns-print {
    width: 100%; padding: .75rem 1rem; background: transparent; border: 1px solid var(--r365-gold); border-radius: 0;
    color: var(--r365-gold-dark); font: inherit; font-weight: 600; cursor: pointer; transition: background .2s, color .2s;
}
.r365-ns-print:hover { background: var(--r365-gold); color: #fff; }
.r365-ns-disclaimer { font-size: .75rem; color: #777; line-height: 1.5; margin: 1rem 0 0; }

.r365-ns-cta { text-align: center; margin-top: 2.5rem; padding: 2rem 1.5rem; background: #000; color: #fff; }
.r365-ns-cta h3 { color: #fff; margin: 0 0 .5rem; font-size: 1.4rem; text-transform: none; letter-spacing: 0; }
.r365-ns-cta p { max-width: 620px; margin: 0 auto 1.25rem; color: #ddd; }
.r365-ns-cta a.r365-ns-cta__btn,
.r365-ns-cta a.r365-ns-cta__btn:visited {
    display: inline-block; padding: .95rem 2.25rem; border: 2px solid var(--r365-gold); border-radius: 0;
    background: var(--r365-gold); color: #fff; font-weight: 700; font-size: .95rem;
    text-transform: uppercase; letter-spacing: .08em; text-decoration: none;
    transition: background .2s, color .2s, border-color .2s;
}
.r365-ns-cta a.r365-ns-cta__btn:hover,
.r365-ns-cta a.r365-ns-cta__btn:focus {
    background: #fff; border-color: #fff; color: #000;
}

@media (max-width: 860px) {
    .r365-ns-grid { grid-template-columns: 1fr; gap: 1.75rem; }
    .r365-ns-results { position: static; }
    .r365-netsheet__inner { padding: 1.75rem 1.25rem; }
}

/* Print / Save as PDF: show only the calculator */
@media print {
    body.r365-print-mode * { visibility: hidden; }
    body.r365-print-mode .r365-print-target,
    body.r365-print-mode .r365-print-target * { visibility: visible; }
    body.r365-print-mode .r365-print-target { position: absolute; left: 0; top: 0; width: 100%; padding: 0; background: #fff; }
    body.r365-print-mode .r365-print-target .r365-netsheet__inner { box-shadow: none; }
    body.r365-print-mode .r365-ns-print,
    body.r365-print-mode .r365-ns-cta a { display: none; }
    body.r365-print-mode .r365-ns-more { display: block; }
    body.r365-print-mode .r365-ns-grid { grid-template-columns: 1fr 1fr; }
    body.r365-print-mode .r365-ns-cta { background: #fff; color: #000; border: 1px solid #ccc; }
    body.r365-print-mode .r365-ns-cta h3, body.r365-print-mode .r365-ns-cta p { color: #000; }
}

/* -- [r365_posts] post cards by category -------------------------------- */
.r365-posts { padding: 2.5rem 0; clear: both; }   /* drop below any floated image above it */
.r365-posts--gray { background: #efeeea; padding: 3rem 1rem; }
.r365-posts__inner { max-width: 1200px; margin: 0 auto; }
.r365-posts .r365-posts__heading { color: var(--r365-gold); text-align: center; margin: 0 0 .5rem; font-size: clamp(1.5rem, 3vw, 2rem); }
.r365-posts__intro { text-align: center; max-width: 680px; margin: 0 auto 2rem; }
.r365-posts__grid { display: grid; gap: 1.75rem; }
.r365-posts__grid--2 { grid-template-columns: repeat(2, 1fr); }
.r365-posts__grid--3 { grid-template-columns: repeat(3, 1fr); }
.r365-posts__grid--4 { grid-template-columns: repeat(4, 1fr); }

.r365-card {
    display: flex; flex-direction: column; background: #fff;
    border: 1px solid #e6e3dd; border-radius: 10px; padding: 10px;
    box-shadow: 0 1px 3px rgba(0,0,0,.04);
    transition: transform .2s, box-shadow .2s;
}
.r365-card:hover { transform: translateY(-3px); box-shadow: 0 8px 22px rgba(0,0,0,.09); }
.r365-card__media { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: #e6e3dd; border-radius: 6px; }
.r365-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s; }
.r365-card .r365-card__media img { margin: 0; border-radius: 0; max-width: none; }   /* beat .tnt-body-content img */
.r365-card:hover .r365-card__media img { transform: scale(1.04); }
.r365-card__placeholder { display: block; width: 100%; height: 100%; background: linear-gradient(135deg, #6f6f6f, #3a3a3a); }
.r365-card__body { display: flex; flex-direction: column; flex: 1; padding: 1.25rem .65rem .6rem; }
.r365-card__meta { font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; color: #888; margin: 0 0 .5rem; }
.r365-card__cat { color: var(--r365-gold-dark); font-weight: 600; }
.r365-card .r365-card__title { font-family: inherit; font-size: 1.2rem; font-weight: 700; line-height: 1.3; margin: 0 0 .6rem; }   /* beat .tnt-body-content h3 */
.r365-card__title a, .r365-card__title a:visited { color: var(--r365-gold-dark); text-decoration: none; }
.r365-card__title a:hover { color: var(--r365-heading); }
.r365-card__excerpt { font-size: .9rem; line-height: 1.65; color: #6b6b6b; margin: 0 0 1.25rem; }
.r365-card a.r365-card__link, .r365-card a.r365-card__link:visited { margin-top: auto; font-weight: 600; font-size: .88rem; color: var(--r365-gold-dark); text-decoration: none; }
.r365-card a.r365-card__link:hover { color: var(--r365-heading); }
.r365-posts__more { text-align: center; margin-top: 2.25rem; }

@media (max-width: 991px) {
    .r365-posts__grid--3, .r365-posts__grid--4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
    .r365-posts__grid--2, .r365-posts__grid--3, .r365-posts__grid--4 { grid-template-columns: 1fr; }
}

/* -- Blog single post (blog-single.php): full width, no title banner ------ */
.tnt-blog-single .tnt-post-section { padding: 40px 0 56px; }
.tnt-post-tags {
    margin-top: 2.5rem; padding-top: 1.25rem; border-top: 1px solid #e6e3dd;
    display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; font-size: .85rem;
}
.tnt-post-tags strong { color: var(--r365-heading); margin-right: .25rem; }
.tnt-post-tag {
    display: inline-block; padding: .3rem .75rem; border: 1px solid #d6d3cc; border-radius: 0;
    background: #f9f9f8; color: var(--r365-ink); font-size: .8rem;
}

/* -- Contact page: form left, office info + map right ------------------- */
.r365-contact {
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
    gap: 2.5rem;
    align-items: start;
    margin-top: 1.5rem;
}
.r365-contact__info {
    background: #fff;
    border-top: 4px solid var(--r365-gold);
    box-shadow: 0 2px 14px rgba(0,0,0,.06);
    padding: 1.75rem 1.5rem;
}
.r365-contact__info h3 { color: var(--r365-gold); margin: 0 0 1rem; font-size: 1.35rem; }
.r365-contact__info dl { margin: 0 0 1.25rem; }
.r365-contact__info dt {
    font-weight: 700; font-size: .8rem; text-transform: uppercase;
    letter-spacing: .06em; color: var(--r365-heading); margin-top: .9rem;
}
.r365-contact__info dt:first-child { margin-top: 0; }
.r365-contact__info dd { margin: .2rem 0 0; }
.r365-contact__info dd a { color: var(--r365-gold-dark); font-weight: 600; text-decoration: none; }
.r365-contact__info dd a:hover { color: var(--r365-heading); }
.r365-contact__map { position: relative; width: 100%; aspect-ratio: 4 / 3; background: #e6e3dd; }
.r365-contact__map iframe {
    position: absolute; inset: 0; width: 100% !important; height: 100% !important;
    border: 0; margin: 0;
}
@media (max-width: 860px) {
    .r365-contact { grid-template-columns: 1fr; gap: 2rem; }
}

/* == HEADER / MAIN MENU (site-wide) ====================================== */
/* Scoped to #tnt-header only, so body links (Theme & Style → Links) are untouched.
   Extra .navbar-nav in the selector out-ranks the header builder's inline <style>. */
#tnt-header .navbar-nav .tnt-nav-link,
#tnt-header .navbar-nav .tnt-nav-link:visited,
#tnt-header .tnt-topbar__nav .tnt-nav-link,
#tnt-header .tnt-topbar__nav .tnt-nav-link:visited {
    color: #fff !important;
    background: transparent !important;
    border-radius: 0;
    text-transform: uppercase;
    letter-spacing: .03em;
    position: relative;
    padding: 8px 14px;
}
#tnt-header .navbar-nav .tnt-nav-link:hover,
#tnt-header .navbar-nav .tnt-nav-link:focus,
#tnt-header .navbar-nav .tnt-nav-link.show,
#tnt-header .navbar-nav .tnt-nav-link.active,
#tnt-header .tnt-topbar__nav .tnt-nav-link:hover,
#tnt-header .tnt-topbar__nav .tnt-nav-link:focus,
#tnt-header .tnt-topbar__nav .tnt-nav-link.show {
    color: var(--r365-gold) !important;
    background: transparent !important;
}
/* Gold underline on the active page (and on hover, desktop only) */
@media (min-width: 992px) {
    #tnt-header .navbar-nav .tnt-nav-link::after {
        content: "";
        position: absolute; left: 14px; right: 14px; bottom: -2px;
        height: 3px; background: var(--r365-gold);
        transform: scaleX(0); transition: transform .2s;
    }
    #tnt-header .navbar-nav .tnt-nav-link.dropdown-toggle::after { /* keep Bootstrap caret */
        position: static; height: auto; background: none; transform: none;
        border-top-color: var(--r365-gold);
    }
    #tnt-header .navbar-nav .tnt-nav-link:hover::after,
    #tnt-header .navbar-nav .tnt-nav-link.active::after { transform: scaleX(1); }
}
#tnt-header .navbar-nav .dropdown-toggle::after,
#tnt-header .tnt-topbar__nav .dropdown-toggle::after { color: var(--r365-gold); }

/* Dropdowns: dark to match the bar */
#tnt-header .dropdown-menu {
    background: var(--r365-header-bg); border: 0; border-top: 3px solid var(--r365-gold);
    border-radius: 0 !important; padding: 6px 0;
}
#tnt-header .dropdown-item            { color: #fff; font-size: .92rem; padding: 8px 18px; }
#tnt-header .dropdown-item:hover,
#tnt-header .dropdown-item:focus,
#tnt-header .dropdown-item.active     { background: transparent; color: var(--r365-gold); }
#tnt-header .dropdown-divider         { border-color: rgba(255,255,255,.15); }

/* CONTACT US button (Headers & Footers → Show CTA) — red w/ gold border */
#tnt-header .tnt-cta-btn {
    background: var(--r365-red) !important;
    color: #fff !important;
    border: 2px solid var(--r365-gold);
    border-radius: 0 !important;
    padding: 10px 30px;
    text-transform: uppercase;
    letter-spacing: .04em;
    transition: background .18s, color .18s;
}
#tnt-header .tnt-cta-btn:hover { background: var(--r365-red-dark) !important; color: var(--r365-gold) !important; }

#tnt-header .tnt-phone-link       { color: #fff !important; }
#tnt-header .tnt-phone-link:hover { color: var(--r365-gold) !important; }
#tnt-header .navbar-toggler       { border-color: rgba(255,255,255,.7) !important; }
#tnt-header .navbar-toggler-icon  { filter: invert(1) !important; }

/* == ALL PAGES: solid header (--r365-header-bg) + gold/black stripe ====== */
#tnt-header {
    background: var(--r365-header-bg) !important;   /* beats builder inline bg */
    box-shadow: none !important;
}
#tnt-header::after {
    content: "";
    display: block;
    height: 12px;
    background: linear-gradient(to bottom,
        var(--r365-gold)  0, var(--r365-gold) 4px,
        var(--r365-black) 4px, var(--r365-black) 100%);
}

@media (max-width: 991.98px) {
    #tnt-header .navbar-collapse.show,
    #tnt-header .navbar-collapse.collapsing { background: var(--r365-header-bg); padding: 12px; margin-top: 8px; }
    #tnt-header .dropdown-menu { border-top-width: 0; background: rgba(0,0,0,.25); }
    #tnt-header .tnt-cta-btn   { display: inline-block; margin-top: 8px; }
}
