/*
Theme Name: Titan Dumpster Site Builder
Theme URI: https://example.com/titan-dumpster
Author: Right Now Marketing Group
Author URI: https://example.com
Description: Standalone, plugin-free WordPress theme that builds a complete 5-page dumpster rental website (Home, About, Services, Dumpster Sizes, Contact) on activation using pure Gutenberg core blocks. All dynamic values (phone, business name, city, hours) resolve at render time through a {{token}} system driven by the admin settings page.
Version: 1.1.0
Requires at least: 6.2
Tested up to: 6.6
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: titan-dumpster
*/

/* ============================================================
   DESIGN TOKENS
   ============================================================ */
:root {
    /* Brand */
    --tds-navy:        #14213d;
    --tds-navy-900:    #0c1526;
    --tds-navy-800:    #1b2c4d;
    --tds-navy-700:    #2b3f66;
    --tds-navy-600:    #3c527d;

    --tds-orange:      #c2410c;   /* primary actions - AA (4.5:1) on white */
    --tds-orange-600:  #ea580c;   /* hover / accent */
    --tds-orange-400:  #fb923c;   /* accents on dark surfaces */
    --tds-orange-tint: #fbf1ea;

    --tds-charcoal:    #1f2430;
    --tds-ink:         #171b22;
    --tds-body:        #3f4753;
    --tds-muted:       #6b7480;

    --tds-line:        #e6e8ec;
    --tds-line-soft:   #eef0f3;

    --tds-bg:          #ffffff;
    --tds-bg-soft:     #f5f6f8;
    --tds-bg-warm:     #fbf7f4;

    /* Typography */
    --tds-font-head: "Sora", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    --tds-font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

    --tds-h1: clamp(2.4rem, 1.55rem + 3.4vw, 3.85rem);
    --tds-h2: clamp(1.85rem, 1.35rem + 1.9vw, 2.7rem);
    --tds-h3: clamp(1.2rem, 1.08rem + 0.4vw, 1.4rem);
    --tds-lead: clamp(1.05rem, 1rem + 0.3vw, 1.2rem);

    /* Layout */
    --tds-content: 1180px;
    --tds-narrow:  780px;
    --tds-gutter:  clamp(1.15rem, 0.6rem + 2vw, 2rem);
    --tds-section: clamp(3.75rem, 2.4rem + 5.5vw, 6.75rem);

    /* Shape */
    --tds-r-sm:  10px;
    --tds-r:     14px;
    --tds-r-lg:  20px;
    --tds-r-xl:  26px;
    --tds-pill:  999px;

    /* Elevation */
    --tds-shadow-xs: 0 1px 2px rgba(20,33,61,.06);
    --tds-shadow-sm: 0 2px 6px rgba(20,33,61,.06), 0 8px 20px rgba(20,33,61,.05);
    --tds-shadow-md: 0 6px 16px rgba(20,33,61,.08), 0 18px 40px rgba(20,33,61,.08);
    --tds-shadow-lg: 0 16px 36px rgba(20,33,61,.14), 0 36px 80px rgba(20,33,61,.12);
    --tds-shadow-orange: 0 10px 24px rgba(194,65,12,.30);

    --tds-ring: 0 0 0 3px rgba(234,88,12,.35);

    /* Motion */
    --tds-ease: cubic-bezier(.16, .84, .44, 1);
    --tds-dur: .28s;
}

/* ============================================================
   RESET / BASE
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }
html {
    -webkit-text-size-adjust: 100%;
    scroll-behavior: smooth;
    /* clip (not hidden) contains alignfull 100vw breakout WITHOUT
       breaking position:sticky on the header */
    overflow-x: clip;
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
}

body {
    margin: 0;
    font-family: var(--tds-font-body);
    font-size: 1.0625rem;
    line-height: 1.7;
    color: var(--tds-body);
    background: var(--tds-bg);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    overflow-x: clip;
}

img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: var(--tds-orange); text-decoration-thickness: 1px; text-underline-offset: 2px; }
a:hover { color: var(--tds-orange-600); }

h1, h2, h3, h4, h5 {
    font-family: var(--tds-font-head);
    color: var(--tds-ink);
    line-height: 1.14;
    letter-spacing: -0.02em;
    margin: 0 0 .55em;
    font-weight: 700;
}
h1 { font-size: var(--tds-h1); font-weight: 800; letter-spacing: -0.03em; }
h2 { font-size: var(--tds-h2); font-weight: 700; }
h3 { font-size: var(--tds-h3); letter-spacing: -0.01em; }
p  { margin: 0 0 1.1em; }
p:last-child { margin-bottom: 0; }
strong { color: var(--tds-ink); font-weight: 600; }

::selection { background: var(--tds-orange); color: #fff; }

:where(a, button, input, textarea, select, summary):focus-visible {
    outline: none;
    box-shadow: var(--tds-ring);
    border-radius: 6px;
}

.skip-link {
    position: absolute;
    left: -9999px;
    top: 0;
    background: var(--tds-navy);
    color: #fff;
    padding: .8rem 1.15rem;
    z-index: 2000;
    border-radius: 0 0 10px 0;
    font-weight: 600;
}
.skip-link:focus { left: 0; }

.screen-reader-text {
    position: absolute !important;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}

/* ============================================================
   ALIGNFULL BREAKOUT  (classic / non-FSE theme)
   ============================================================ */
.wp-block-group.alignfull {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    box-sizing: border-box;
}
.wp-block-group.alignfull > * {
    max-width: var(--tds-content);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--tds-gutter);
    padding-right: var(--tds-gutter);
}
.wp-block-group.alignfull > .wp-block-columns,
.wp-block-group.alignfull > .wp-block-heading,
.wp-block-group.alignfull > .wp-block-paragraph,
.wp-block-group.alignfull > .wp-block-buttons,
.wp-block-group.alignfull > .wp-block-query {
    width: 100%;
    max-width: var(--tds-content);
    padding-left: var(--tds-gutter);
    padding-right: var(--tds-gutter);
}

/* ============================================================
   SECTION RHYTHM
   ============================================================ */
.tds-main { display: block; }
.tds-page .entry-content { margin: 0; }
/* swallow stray empty <p> that wpautop can leave around shortcodes */
.entry-content p:empty { display: none; }

.tds-section {
    padding-top: var(--tds-section);
    padding-bottom: var(--tds-section);
    position: relative;
}
.entry-content > .wp-block-group.alignfull:first-child { margin-top: 0; }

.tds-section--soft { background: var(--tds-bg-soft); }
.tds-section--warm { background: var(--tds-bg-warm); }
.tds-section--navy { background: var(--tds-navy); color: rgba(255,255,255,.82); }
.tds-section--navy :is(h1, h2, h3, h4) { color: #fff; }
.tds-section--navy strong { color: #fff; }
.tds-section--navy a:not(.wp-block-button__link) { color: var(--tds-orange-400); }

/* Hairline divider between two adjacent light sections */
.tds-section + .tds-section:not(.tds-section--navy):not(.tds-section--soft):not(.tds-section--warm) {
    border-top: 1px solid var(--tds-line-soft);
}

/* Constrain body copy width for readability inside sections */
.tds-section > .wp-block-heading,
.tds-section > .wp-block-paragraph,
.tds-section > p {
    max-width: var(--tds-content);
}
.tds-section--prose > * { max-width: var(--tds-narrow); }

/* Centered section intro */
.tds-section .has-text-align-center { margin-left: auto; margin-right: auto; }
.tds-section h2.has-text-align-center + p.has-text-align-center,
.tds-section .has-text-align-center.tds-lead {
    max-width: 640px;
    color: var(--tds-muted);
    font-size: var(--tds-lead);
}

/* ============================================================
   EYEBROW LABEL
   ============================================================ */
.tds-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    font-family: var(--tds-font-head);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--tds-orange);
    margin: 0 0 1rem;
}
.tds-eyebrow::before {
    content: "";
    width: 26px;
    height: 2px;
    background: currentColor;
    border-radius: 2px;
}
.tds-eyebrow.has-text-align-center {
    display: flex;
    justify-content: center;
    text-align: center;
}
.tds-section--navy .tds-eyebrow { color: var(--tds-orange-400); }

/* ============================================================
   HEADINGS INSIDE CONTENT
   ============================================================ */
.wp-block-heading { scroll-margin-top: 120px; }
.tds-section > h2, .tds-section > .wp-block-heading[class*="has-text-align"] { margin-bottom: .5em; }

/* ============================================================
   BUTTON SYSTEM
   ============================================================ */
.wp-block-buttons { gap: .85rem; }
.wp-block-button { margin: 0; }

.wp-block-button__link,
.tds-btn {
    --btn-bg: var(--tds-orange);
    --btn-fg: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    font-family: var(--tds-font-head);
    font-weight: 700;
    font-size: 1rem;
    line-height: 1;
    letter-spacing: .005em;
    text-decoration: none;
    padding: 1.02rem 1.7rem;
    border-radius: var(--tds-r-sm);
    border: 2px solid transparent;
    background: var(--btn-bg);
    color: var(--btn-fg);
    cursor: pointer;
    transition: transform var(--tds-dur) var(--tds-ease),
                box-shadow var(--tds-dur) var(--tds-ease),
                background-color var(--tds-dur) var(--tds-ease),
                border-color var(--tds-dur) var(--tds-ease),
                color var(--tds-dur) var(--tds-ease);
    will-change: transform;
}
.wp-block-button__link { box-shadow: var(--tds-shadow-orange); }
.wp-block-button__link:hover,
.tds-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 30px rgba(194,65,12,.34);
    background: var(--tds-orange-600);
    color: #fff;
}
.wp-block-button__link:active,
.tds-btn:active { transform: translateY(0); }

/* Variants driven by className on wp:button */
.tds-btn--primary .wp-block-button__link {
    background: var(--tds-orange);
    color: #fff;
    box-shadow: var(--tds-shadow-orange);
}
.tds-btn--light .wp-block-button__link {
    background: #fff;
    color: var(--tds-navy);
    box-shadow: var(--tds-shadow-sm);
}
.tds-btn--light .wp-block-button__link:hover {
    background: #fff;
    color: var(--tds-orange-600);
    box-shadow: var(--tds-shadow-md);
}
.tds-btn--dark .wp-block-button__link {
    background: var(--tds-navy);
    color: #fff;
    box-shadow: 0 10px 24px rgba(12,21,38,.30);
}
.tds-btn--dark .wp-block-button__link:hover { background: var(--tds-navy-800); color: #fff; }

.tds-btn--ghost .wp-block-button__link {
    background: transparent;
    color: var(--tds-navy);
    border-color: rgba(20,33,61,.22);
    box-shadow: none;
}
.tds-btn--ghost .wp-block-button__link:hover {
    background: var(--tds-navy);
    color: #fff;
    border-color: var(--tds-navy);
    box-shadow: var(--tds-shadow-md);
}
.tds-section--navy .tds-btn--ghost .wp-block-button__link {
    color: #fff;
    border-color: rgba(255,255,255,.4);
}
.tds-section--navy .tds-btn--ghost .wp-block-button__link:hover {
    background: #fff;
    color: var(--tds-navy);
    border-color: #fff;
}

/* Arrow affordance on secondary CTAs */
.tds-btn--arrow .wp-block-button__link::after {
    content: "";
    width: 18px; height: 18px;
    background: currentColor;
    -webkit-mask: var(--tds-ico-arrow) center / contain no-repeat;
            mask: var(--tds-ico-arrow) center / contain no-repeat;
    transition: transform var(--tds-dur) var(--tds-ease);
}
.tds-btn--arrow .wp-block-button__link:hover::after { transform: translateX(4px); }

/* ============================================================
   ICON SYSTEM  (CSS mask, no dependency)
   ============================================================ */
:root {
    --tds-ico-arrow:   url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
    --tds-ico-home:    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 10.5 12 3l9 7.5'/%3E%3Cpath d='M5 9.5V21h14V9.5'/%3E%3Cpath d='M9.5 21v-6h5v6'/%3E%3C/svg%3E");
    --tds-ico-hat:     url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 18h20'/%3E%3Cpath d='M4 18v-3a8 8 0 0 1 16 0v3'/%3E%3Cpath d='M10 6.3V4a2 2 0 0 1 4 0v2.3'/%3E%3C/svg%3E");
    --tds-ico-hammer: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.5 3.5 21 10l-3 3-6.5-6.5z'/%3E%3Cpath d='M12 8 4 16v4h4l8-8'/%3E%3C/svg%3E");
    --tds-ico-building: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 21V5a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v16'/%3E%3Cpath d='M14 9h4a2 2 0 0 1 2 2v10'/%3E%3Cpath d='M2 21h20M8 7h2M8 11h2M8 15h2'/%3E%3C/svg%3E");
    --tds-ico-trash:  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2'/%3E%3Cpath d='M6 6l1 14a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2l1-14'/%3E%3Cpath d='M10 11v6M14 11v6'/%3E%3C/svg%3E");
    --tds-ico-roof:   url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 12 12 4l9.5 8'/%3E%3Cpath d='M5.5 11.5V20h13v-8.5'/%3E%3Cpath d='M10 20v-4.5h4V20'/%3E%3C/svg%3E");
    --tds-ico-truck:  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h11v10H3z'/%3E%3Cpath d='M14 9h4l3 3v4h-7z'/%3E%3Ccircle cx='7.5' cy='18' r='2'/%3E%3Ccircle cx='17.5' cy='18' r='2'/%3E%3C/svg%3E");
    --tds-ico-clipboard: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='8' y='3' width='8' height='4' rx='1'/%3E%3Cpath d='M9 5H6a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-3'/%3E%3Cpath d='M8 12h8M8 16h6'/%3E%3C/svg%3E");
    --tds-ico-mail:   url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E");
    --tds-ico-dumpster: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 8h20l-2 9H4z'/%3E%3Cpath d='M6.5 8 8 4.5h8L17.5 8'/%3E%3Ccircle cx='8' cy='20' r='1.6'/%3E%3Ccircle cx='16' cy='20' r='1.6'/%3E%3C/svg%3E");
    --tds-ico-calendar: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3Cpath d='m8.5 15 2.5 2.5 4.5-4.5'/%3E%3C/svg%3E");
    --tds-ico-package: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 3 7.5v9L12 21l9-4.5v-9z'/%3E%3Cpath d='M3 7.5 12 12l9-4.5M12 12v9'/%3E%3C/svg%3E");
    --tds-ico-phone:  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h4l2 5-2.4 1.5a12 12 0 0 0 5.9 5.9L16 14l5 2v4a2 2 0 0 1-2 2A17 17 0 0 1 2 6a2 2 0 0 1 2-2z'/%3E%3C/svg%3E");
    --tds-ico-shield: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 5 6v5c0 5 3.4 8.5 7 10 3.6-1.5 7-5 7-10V6z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E");
    --tds-ico-pin:    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s7-5.5 7-11a7 7 0 0 0-14 0c0 5.5 7 11 7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E");
    --tds-ico-clock:  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3.5 2'/%3E%3C/svg%3E");
    --tds-ico-star:   url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='m12 3 2.6 5.3 5.9.9-4.3 4.1 1 5.8L12 17.7 6.8 20.4l1-5.8L3.5 9.5l5.9-.9z'/%3E%3C/svg%3E");
    --tds-ico-check:  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 13 4 4 10-11'/%3E%3C/svg%3E");
}

.tds-ico {
    display: inline-block;
    width: 1.25em;
    height: 1.25em;
    background: currentColor;
    -webkit-mask: var(--tds-ico-arrow) center / contain no-repeat;
            mask: var(--tds-ico-arrow) center / contain no-repeat;
    flex: none;
}

/* ============================================================
   GENERIC CARD
   ============================================================ */
.tds-card {
    background: #fff;
    border: 1px solid var(--tds-line);
    border-radius: var(--tds-r-lg);
    padding: clamp(1.4rem, 1rem + 1.4vw, 2rem);
    box-shadow: var(--tds-shadow-xs);
    height: 100%;
    transition: transform var(--tds-dur) var(--tds-ease),
                box-shadow var(--tds-dur) var(--tds-ease),
                border-color var(--tds-dur) var(--tds-ease);
}

/* ============================================================
   FAQ ACCORDION  (wp:details / wp:summary)
   ============================================================ */
.wp-block-details {
    border: 1px solid var(--tds-line);
    border-radius: var(--tds-r);
    padding: 1.15rem 1.35rem;
    margin-bottom: .8rem;
    background: #fff;
    box-shadow: var(--tds-shadow-xs);
    transition: box-shadow var(--tds-dur) var(--tds-ease), border-color var(--tds-dur) var(--tds-ease);
}
.wp-block-details:hover { border-color: #d8dbe1; box-shadow: var(--tds-shadow-sm); }
.wp-block-details[open] { border-color: rgba(194,65,12,.4); box-shadow: var(--tds-shadow-sm); }
.wp-block-details summary {
    font-family: var(--tds-font-head);
    font-weight: 600;
    font-size: 1.05rem;
    color: var(--tds-navy);
    cursor: pointer;
    list-style: none;
    display: block;
    padding-right: 2.4rem;
    position: relative;
}
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after {
    content: "";
    position: absolute;
    right: 0; top: 0;
    width: 26px; height: 26px;
    border-radius: 8px;
    background: var(--tds-orange-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c2410c' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center / 14px no-repeat;
    transition: transform var(--tds-dur) var(--tds-ease);
}
.wp-block-details[open] summary::after { transform: rotate(135deg); }
.wp-block-details[open] summary { margin-bottom: .85rem; }
.wp-block-details > :not(summary) { color: var(--tds-body); }

/* ============================================================
   QUERY LOOP  (testimonials)
   ============================================================ */
.wp-block-query { margin-top: 2.4rem; }
.wp-block-post-template {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 1.35rem;
    list-style: none;
    padding: 0;
    margin: 0;
}
.wp-block-post-template > li { margin: 0; }
.wp-block-post-template .wp-block-group {
    background: #fff;
    border: 1px solid var(--tds-line);
    border-radius: var(--tds-r-lg);
    padding: 1.75rem !important;
    box-shadow: var(--tds-shadow-xs);
    height: 100%;
    display: flex;
    flex-direction: column;
    gap: .55rem;
    position: relative;
    transition: transform var(--tds-dur) var(--tds-ease), box-shadow var(--tds-dur) var(--tds-ease);
}
.wp-block-post-template .wp-block-group:hover { transform: translateY(-4px); box-shadow: var(--tds-shadow-md); }
.wp-block-post-template .wp-block-group::before {
    content: "\201C";
    font-family: Georgia, "Times New Roman", serif;
    font-size: 4rem;
    line-height: 1;
    color: rgba(194,65,12,.16);
    position: absolute;
    top: .6rem; right: 1.1rem;
}
.wp-block-post-template .wp-block-post-excerpt { color: var(--tds-body); font-size: 1rem; margin: 0; }
.wp-block-post-template .wp-block-post-excerpt__excerpt { margin: 0; }
.wp-block-post-template .wp-block-post-excerpt__more-text { display: none; }
.wp-block-post-template .wp-block-post-title {
    font-family: var(--tds-font-head);
    font-size: .98rem !important;
    font-weight: 700;
    color: var(--tds-navy) !important;
    margin: .35rem 0 0;
}
.wp-block-post-template .wp-block-post-title::before {
    content: "";
    display: block;
    width: 34px;
    height: 2px;
    background: var(--tds-orange);
    margin-bottom: .55rem;
}

/* ============================================================
   CONTACT FORM  (core wp:html)
   ============================================================ */
.tds-form { display: grid; gap: 1.1rem; max-width: 640px; }
.tds-form > div { display: grid; }
.tds-form label { font-family: var(--tds-font-head); font-weight: 600; margin-bottom: .4rem; color: var(--tds-navy); font-size: .95rem; }
.tds-form input,
.tds-form textarea,
.tds-form select {
    width: 100%;
    padding: .9rem 1rem;
    border: 1.5px solid var(--tds-line);
    border-radius: var(--tds-r-sm);
    font: inherit;
    color: var(--tds-ink);
    background: #fff;
    transition: border-color var(--tds-dur) var(--tds-ease), box-shadow var(--tds-dur) var(--tds-ease);
}
.tds-form input:focus,
.tds-form textarea:focus,
.tds-form select:focus {
    outline: none;
    border-color: var(--tds-orange);
    box-shadow: 0 0 0 3px rgba(194,65,12,.14);
}
.tds-form textarea { min-height: 150px; resize: vertical; }
.tds-form button {
    justify-self: start;
    background: var(--tds-orange);
    color: #fff;
    border: 0;
    padding: 1.05rem 2rem;
    border-radius: var(--tds-r-sm);
    font-family: var(--tds-font-head);
    font-weight: 700;
    font-size: 1rem;
    cursor: pointer;
    box-shadow: var(--tds-shadow-orange);
    transition: transform var(--tds-dur) var(--tds-ease), background-color var(--tds-dur) var(--tds-ease), box-shadow var(--tds-dur) var(--tds-ease);
}
.tds-form button:hover { background: var(--tds-orange-600); transform: translateY(-2px); box-shadow: 0 14px 30px rgba(194,65,12,.34); }
.tds-form-notice {
    padding: 1rem 1.25rem;
    border-radius: var(--tds-r-sm);
    margin-bottom: 1.25rem;
    font-weight: 600;
    border: 1px solid transparent;
}
.tds-form-notice.is-ok  { background: #e9f7ee; color: #14532d; border-color: #b7e4c7; }
.tds-form-notice.is-err { background: #fdecec; color: #7f1d1d; border-color: #f5c2c2; }

.tds-map { border-radius: var(--tds-r); overflow: hidden; border: 1px solid var(--tds-line); box-shadow: var(--tds-shadow-xs); }
.tds-map iframe { display: block; }

/* ============================================================
   404
   ============================================================ */
.tds-404 { max-width: var(--tds-content); margin: 0 auto; padding: clamp(4rem, 8vw, 7rem) var(--tds-gutter); text-align: center; }
.tds-404 h1 { margin-bottom: .3em; }
.tds-404 .tds-btn { margin: .3rem; }

/* ============================================================
   SCROLL REVEAL  (progressive enhancement)
   ============================================================ */
.tds-js .tds-reveal {
    opacity: 0;
    transform: translateY(22px);
    transition: opacity .6s var(--tds-ease), transform .6s var(--tds-ease);
}
.tds-js .tds-reveal.is-in { opacity: 1; transform: none; }
.tds-js .tds-reveal-stagger > * {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity .55s var(--tds-ease), transform .55s var(--tds-ease);
}
.tds-js .tds-reveal-stagger.is-in > * { opacity: 1; transform: none; }
.tds-js .tds-reveal-stagger.is-in > *:nth-child(2) { transition-delay: .07s; }
.tds-js .tds-reveal-stagger.is-in > *:nth-child(3) { transition-delay: .14s; }
.tds-js .tds-reveal-stagger.is-in > *:nth-child(4) { transition-delay: .21s; }
.tds-js .tds-reveal-stagger.is-in > *:nth-child(5) { transition-delay: .28s; }
@media (prefers-reduced-motion: reduce) {
    .tds-js .tds-reveal,
    .tds-js .tds-reveal-stagger > * { opacity: 1 !important; transform: none !important; }
}

/* ============================================================
   RESPONSIVE BASE
   ============================================================ */
@media (max-width: 900px) {
    /* core forces flex-wrap:nowrap!important above 782px - override it */
    .wp-block-columns { flex-wrap: wrap !important; gap: 1.1rem; }
    .wp-block-column { flex-basis: 100% !important; }
}
@media (max-width: 600px) {
    body { font-size: 1rem; }
    .wp-block-buttons {
        width: 100%;
        flex-direction: column;
        align-items: stretch;
    }
    .wp-block-button { width: 100%; }
    .wp-block-button__link, .tds-btn { width: 100%; }
    .tds-cta-band__buttons { flex-direction: column; }
}
