/* page-layout.css — extracted from public_page.php inline styles */
/* Provides layout, grid, and component CSS that matches the live public pages */

/* ===== Design system tokens ===== */
    :root{
      --bg:#ffffff;
      --ink:#111111;
      --muted:rgba(17,17,17,.68);
      --soft:rgba(17,17,17,.04);
      --line:rgba(17,17,17,.12);
      --shadow:0 18px 55px rgba(0,0,0,.08);
      --radius:18px;
      --radius2:26px;
      --max:1120px;
      --maxText:800px;
      --serif: ui-serif, Georgia, "Times New Roman", Times, serif;
      --sans: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
      --focus: rgba(17,17,17,.38);
    }

    /* ===== Reset ===== */
    *{ box-sizing:border-box; }
    html,body{ height:100%; }
    body{
      margin:0;
      background:var(--bg);
      color:var(--ink);
      font-family:var(--sans);
      line-height:1.7;
      -webkit-font-smoothing:antialiased;
      text-rendering:optimizeLegibility;
    }
    a{ color:inherit; text-decoration:none; }
    a:hover{ opacity:.92; }
    a:focus{ outline:2px solid var(--focus); outline-offset:3px; border-radius:8px; }

    /* ===== Layout ===== */
    .container{ width:100%; max-width:var(--max); margin:0 auto; padding:0 20px; }
    .content{ display:grid; grid-template-columns:1fr 320px; gap:26px; align-items:start; }
    @media (max-width:980px){
      .content{ grid-template-columns:1fr; }
      .sidebar{ position:static !important; }
    }

    /* ===== Topbar ===== */
    .topbar{
      position:sticky; top:0; z-index:60;
      backdrop-filter: blur(10px);
      background: rgba(255,255,255,.78);
      border-bottom: 1px solid var(--line);
    }
    .topbar-inner{
      display:flex; align-items:center; justify-content:space-between;
      padding:12px 0; gap:12px;
    }
    .brand{ display:flex; align-items:center; gap:10px; font-weight:800; letter-spacing:.02em; }
    .brand svg{ height:28px; width:auto; flex-shrink:0; }
    .brand-badge{
      width:30px; height:30px; border-radius:10px;
      border:1px solid var(--line);
      background:var(--soft);
      display:grid; place-items:center;
      font-family:var(--serif); font-weight:900;
    }
    .nav{
      display:flex; gap:14px; align-items:center; flex-wrap:wrap;
      color:var(--muted); font-size:.95rem;
    }
    .nav a{ border-bottom:1px solid transparent; padding-bottom:2px; }
    .nav a:hover{ border-bottom-color:rgba(17,17,17,.25); opacity:1; }
    @media (max-width:640px){
      .nav{ gap:10px; font-size:.85rem; }
    }

    /* ===== Full-width video hero ===== */
    .hero-video-full{
      position:relative;
      width:100vw;
      margin-left: calc(50% - 50vw);
      margin-right: calc(50% - 50vw);
      height:75vh;
      min-height:520px;
      max-height:860px;
      background:#000;
      overflow:hidden;
    }
    @media (max-width:640px){
      .hero-video-full{ min-height:480px; height:68vh; }
    }
    .hero-video-full video{
      position:absolute; inset:0;
      width:100%; height:100%;
      object-fit:cover;
      transform: scale(1.02);
    }
    @media (max-width:640px){
      .hero-video-full video{
        object-fit:contain;
        transform:none;
        background:#000;
      }
    }
    .hero-video-full::after{
      content:"";
      position:absolute; inset:0;
      background:
        radial-gradient(1200px 500px at 20% 20%, rgba(0,0,0,.22), rgba(0,0,0,0)),
        linear-gradient(to bottom, rgba(0,0,0,.45), rgba(0,0,0,.10), rgba(0,0,0,.55));
      pointer-events:none;
    }
    .hero-overlay-wrap{
      position:relative;
      height:100%;
      display:flex;
      align-items:flex-end;
    }
    .hero-overlay-copy{
      position:relative;
      max-width:70ch;
      margin-bottom:34px;
      color:rgba(255,255,255,.92);
      background:rgba(0,0,0,.30);
      border:1px solid rgba(255,255,255,.18);
      border-radius:18px;
      padding:16px 18px;
      backdrop-filter:blur(8px);
      box-shadow:0 18px 55px rgba(0,0,0,.22);
    }
    .hero-overlay-copy .kicker{
      font-size:.78rem;
      letter-spacing:.14em;
      text-transform:uppercase;
      color:rgba(255,255,255,.82);
      margin:0 0 10px;
    }
    .hero-overlay-copy h1{
      font-family:var(--serif);
      font-size:clamp(40px, 5vw, 74px);
      line-height:1.02;
      margin:0 0 10px;
      letter-spacing:-0.02em;
    }
    @media (max-width:640px){
      .hero-overlay-wrap{
        padding-top:90px; /* clear breadcrumbs + topbar on mobile */
      }
      .hero-overlay-copy h1{
        font-size:clamp(24px, 4.5vw, 36px);
        line-height:1.10;
      }
      .hero-overlay-copy{
        margin-bottom:14px;
        padding:10px 12px;
      }
      .hero-overlay-copy .kicker{
        font-size:.7rem;
        margin:0 0 6px;
      }
      .eeat-line{
        gap:6px;
      }
      .eeat-line .pill{
        padding:4px 8px;
        font-size:.78rem;
      }
    }
    @media (max-width:380px){
      .hero-overlay-wrap{
        padding-top:95px;
      }
      .hero-overlay-copy h1{
        font-size:clamp(20px, 4vw, 28px);
      }
    }
    .hero-overlay-copy .subtitle{
      color:rgba(255,255,255,.86);
      font-size:1.10rem;
      margin:0;
      max-width:62ch;
    }
    @media (max-width:640px){
      .hero-overlay-copy .subtitle{
        font-size:.92rem;
      }
    }

    /* ===== E-E-A-T line ===== */
    .eeat-line{
      margin-top:10px;
      font-size:.92rem;
      color:rgba(255,255,255,.82);
      display:flex; flex-wrap:wrap; gap:10px; align-items:center;
    }
    .eeat-line .pill{
      display:inline-flex; align-items:center; gap:8px;
      padding:6px 10px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.18);
      background:rgba(0,0,0,.18);
      backdrop-filter:blur(8px);
      font-weight:900; letter-spacing:.01em;
      color:rgba(255,255,255,.86);
    }
    .eeat-line a{
      border-bottom:1px solid rgba(255,255,255,.35);
      padding-bottom:1px;
      color:rgba(255,255,255,.88);
      font-weight:900;
    }

    /* ===== Breadcrumbs ===== */
    .breadcrumbs{
      position:absolute; top:14px; left:0; right:0; z-index:5;
      color:rgba(255,255,255,.78); font-size:.9rem;
    }
    @media (max-width:640px){
      .breadcrumbs{ top:50px; font-size:.82rem; }
    }
    @media (max-width:380px){
      .breadcrumbs{ top:52px; font-size:.78rem; }
    }
    .breadcrumbs .crumbs{
      display:flex; gap:8px; flex-wrap:wrap;
      padding:0 20px; max-width:var(--max); margin:0 auto;
    }
    .breadcrumbs span{ opacity:.65; }
    .breadcrumbs a{ color:rgba(255,255,255,.84); }
    .breadcrumbs strong{ color:rgba(255,255,255,.95); }

    /* ===== Below-hero strip ===== */
    .below-hero{
      padding:18px 0 12px;
      border-bottom:1px solid var(--line);
      background:rgba(255,255,255,.92);
    }

    /* ===== Tags ===== */
    .tagline{
      display:flex; flex-wrap:nowrap; gap:10px;
      align-items:center; justify-content:space-between; margin:0;
    }
    @media (max-width:980px){ .tagline{ gap:8px; } }
    .tag{
      border:1px solid var(--line);
      background:rgba(255,255,255,.75);
      padding:8px 9px; border-radius:14px;
      color:rgba(17,17,17,.72);
      display:inline-flex; align-items:center; gap:7px;
      font-size:clamp(.72rem, 1.15vw, .86rem);
      font-weight:900; white-space:nowrap;
      flex:1 1 0; justify-content:center;
      min-width:0; overflow:hidden; text-overflow:ellipsis;
    }
    .tag .ico{
      width:20px; height:20px; border-radius:10px;
      border:1px solid var(--line); background:var(--soft);
      display:grid; place-items:center; flex:0 0 auto; font-size:.88rem;
    }

    /* ===== Section nav dropdown ===== */
    .sectionnav{ margin-top:10px; position:relative; }
    .sectionnav-toggle{
      width:100%; display:flex; align-items:center; gap:12px;
      padding:12px 14px;
      border:1px solid var(--line); border-radius:var(--radius);
      background:rgba(255,255,255,.92);
      box-shadow:0 10px 30px rgba(0,0,0,.05);
      cursor:pointer; user-select:none;
    }
    .menuicon{
      width:32px; height:32px; border-radius:14px;
      border:1px solid var(--line); background:var(--soft);
      display:grid; place-items:center; flex:0 0 auto;
      font-weight:900; color:rgba(17,17,17,.70);
    }
    .sectionnav-title{
      font-family:var(--serif); font-weight:900;
      letter-spacing:-0.01em; font-size:1.05rem; line-height:1.1;
    }
    .sectionnav-hint{ margin-left:auto; color:var(--muted); font-size:.92rem; white-space:nowrap; }
    .sectionnav-chevron{ color:var(--muted); font-size:1.05rem; transition:transform .15s ease; }
    .sectionnav.open .sectionnav-chevron{ transform:rotate(180deg); }
    @media (max-width:520px){ .sectionnav-hint{ display:none; } }
    .sectionnav-panel{
      position:absolute; top:calc(100% + 10px); left:0; right:0; z-index:30;
      display:none;
      border:1px solid var(--line); border-radius:var(--radius);
      background:rgba(255,255,255,.98);
      box-shadow:0 18px 55px rgba(0,0,0,.10); padding:14px;
    }
    .sectionnav.open .sectionnav-panel{ display:block; }
    .sectionnav-grid{
      display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:10px;
    }
    @media (max-width:980px){ .sectionnav-grid{ grid-template-columns:repeat(3, minmax(0,1fr)); } }
    @media (max-width:640px){ .sectionnav-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
    @media (max-width:420px){ .sectionnav-grid{ grid-template-columns:1fr; } }
    .snav{
      border:1px solid rgba(17,17,17,.16); background:rgba(17,17,17,.03);
      border-radius:16px; padding:10px;
      display:flex; align-items:center; gap:10px;
      font-weight:900; color:rgba(17,17,17,.84);
      box-shadow:0 10px 22px rgba(0,0,0,.04);
      transition:transform .15s ease, background .15s ease;
      font-size:.92rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
    }
    .snav:hover{ background:rgba(17,17,17,.05); transform:translateY(-1px); }
    .snav .dot{
      width:10px; height:10px; border-radius:999px;
      background:rgba(17,17,17,.35); flex:0 0 auto;
    }

    /* ===== Danube caption ===== */
    .danube-cap{
      margin-top:10px; margin-bottom:10px;
      border:1px solid var(--line); border-radius:var(--radius);
      background:rgba(255,255,255,.92); padding:12px 14px;
      display:flex; gap:10px; color:var(--muted); align-items:flex-start;
    }
    .danube-cap .miniico{
      width:30px; height:30px; border-radius:14px;
      border:1px solid var(--line); background:var(--soft);
      display:grid; place-items:center; flex:0 0 auto;
    }
    .danube-cap strong{ display:block; margin-bottom:2px; line-height:1.15; }
    .danube-cap div{ line-height:1.45; }

    /* ===== Main article & prose ===== */
    main{ padding-top:24px; padding-bottom:48px; }
    article{ padding-bottom:30px; }
    .prose{ max-width:var(--maxText); }

    h2{
      font-family:var(--serif);
      font-size:clamp(22px,2.2vw,30px);
      line-height:1.25; margin:26px 0 10px; letter-spacing:-0.01em;
    }
    h3{ font-size:1.1rem; margin:16px 0 6px; line-height:1.35; }
    p{ margin:0 0 12px; }

    /* ===== Callout ===== */
    .callout{
      border:1px solid var(--line); background:rgba(17,17,17,.02);
      border-radius:var(--radius); padding:14px 16px; margin:14px 0;
      color:var(--muted);
    }
    .callout strong{ color:var(--ink); }

    /* ===== Grid2 + Card ===== */
    .grid2{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:12px; }
    @media (max-width:720px){ .grid2{ grid-template-columns:1fr; } }
    .card{
      border:1px solid var(--line); border-radius:var(--radius);
      background:rgba(255,255,255,.92); padding:14px;
      box-shadow:0 10px 28px rgba(0,0,0,.05);
    }
    .card .title{
      font-family:var(--serif); font-weight:900; font-size:1.1rem;
      margin:0 0 6px; letter-spacing:-0.01em;
    }
    .card p{ color:var(--muted); margin:0 0 10px; }
    .card ul{ margin:0; padding-left:18px; color:var(--muted); }

    /* ===== Card grid (highlights) ===== */
    .ts-card-grid h2{ font-family:var(--serif); font-size:clamp(22px,2.2vw,30px); line-height:1.25; margin:20px 0 6px; letter-spacing:-0.01em; }
    .ts-card-grid-items{ display:grid; gap:12px; grid-template-columns:repeat(3, minmax(0,1fr)); margin-top:12px; }
    @media (max-width:860px){ .ts-card-grid-items{ grid-template-columns:1fr; } }
    .ts-info-card{ border:1px solid var(--line); border-radius:var(--radius); background:rgba(255,255,255,.92); overflow:hidden; box-shadow:0 10px 28px rgba(0,0,0,.05); transition:transform .16s ease, box-shadow .16s ease; }
    .ts-info-card:hover{ transform:translateY(-2px); box-shadow:0 18px 45px rgba(0,0,0,.08); }
    .ts-info-card--has-image{ padding:0; }
    .ts-info-card:not(.ts-info-card--has-image){ padding:14px; }
    .ts-info-card-media{ aspect-ratio:16/10; overflow:hidden; }
    .ts-info-card-media img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s ease; }
    .ts-info-card:hover .ts-info-card-media img{ transform:scale(1.04); }
    .ts-info-card--has-image h3, .ts-info-card--has-image p, .ts-info-card--has-image a{ padding:0 16px; }
    .ts-info-card--has-image h3{ padding-top:14px; }
    .ts-info-card--has-image p:last-of-type{ padding-bottom:16px; }
    .ts-info-card h3{ font-family:var(--serif); font-weight:900; font-size:1.1rem; margin:0 0 6px; letter-spacing:-0.01em; }
    .ts-info-card p{ color:var(--muted); margin:0 0 10px; }

    /* ===== Places grid ===== */
    .places-grid{
      display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:12px; margin:12px 0 0;
    }
    @media (max-width:720px){ .places-grid{ grid-template-columns:1fr; } }
    .place-card{
      border:1px solid var(--line); border-radius:var(--radius);
      background:rgba(255,255,255,.92); overflow:hidden;
      box-shadow:0 12px 30px rgba(0,0,0,.05);
      transition:transform .16s ease, box-shadow .16s ease;
      display:block; height:100%;
    }
    .place-card:hover{ transform:translateY(-2px); box-shadow:0 18px 45px rgba(0,0,0,.08); }
    .place-media{ height:190px; background:var(--soft); position:relative; overflow:hidden; }
    .place-media img{ width:100%; height:100%; object-fit:cover; display:block; transform:scale(1.02); }
    .place-media::after{
      content:""; position:absolute; inset:0;
      background:linear-gradient(to bottom, rgba(0,0,0,.02), rgba(0,0,0,.34));
      pointer-events:none;
    }
    .place-body{
      padding:14px; display:flex; flex-direction:column; height:calc(100% - 190px);
    }
    .place-top{
      display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:6px;
    }
    .place-title{
      font-family:var(--serif); font-weight:900; letter-spacing:-0.01em;
      font-size:1.18rem; margin:0; line-height:1.15;
    }
    .place-icon{
      width:34px; height:34px; border-radius:14px;
      border:1px solid var(--line); background:rgba(17,17,17,.03);
      display:grid; place-items:center; flex:0 0 auto; font-size:1.05rem;
    }
    .place-summary{ margin:0 0 10px; color:rgba(17,17,17,.86); font-weight:900; letter-spacing:.01em; }
    .place-desc{ margin:0 0 10px; color:var(--muted); font-size:.98rem; }
    .place-best{ margin:0 0 12px; padding-left:18px; color:var(--muted); }
    .place-best li{ margin:0 0 4px; }
    .place-footer{
      margin-top:auto; padding-top:10px; border-top:1px solid var(--line);
      text-align:left; color:var(--muted); font-size:.95rem;
      display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-start; gap:6px;
    }
    .place-footer > div, .place-footer > a, .place-footer > span{ width:100%; text-align:left; }
    .place-footer .pin{
      width:28px; height:28px; border-radius:14px;
      border:1px solid var(--line); background:var(--soft);
      display:grid; place-items:center; margin:0;
    }
    .place-footer .btnline{ display:flex; justify-content:flex-start; width:100%; margin-top:6px; }
    .place-cta{
      display:inline-flex; align-items:center; gap:8px; padding:10px 12px;
      border-radius:14px; border:1px solid rgba(17,17,17,.18);
      background:rgba(17,17,17,.03); font-weight:900;
    }

    /* ===== Itinerary ===== */
    .itinerary{ display:grid; gap:12px; margin:12px 0 0; }
    .it{
      border:1px solid var(--line); background:rgba(255,255,255,.92);
      border-radius:var(--radius); padding:14px;
      display:flex; justify-content:space-between; gap:12px; align-items:start;
    }
    .it .left{ max-width:60ch; }
    .it .days{
      font-family:var(--serif); font-weight:900; letter-spacing:-0.01em;
      font-size:1.1rem; margin:0 0 6px; display:flex; align-items:center; gap:10px;
    }
    .it .badge{
      font-size:.85rem; color:var(--muted);
      border:1px solid var(--line); background:rgba(17,17,17,.02);
      padding:5px 9px; border-radius:999px;
      font-family:var(--sans); font-weight:900; letter-spacing:.02em;
    }
    .it ul{ margin:0; padding-left:18px; color:var(--muted); }
    .btn{
      display:inline-flex; align-items:center; justify-content:center; gap:8px;
      padding:10px 12px; border-radius:14px;
      border:1px solid rgba(17,17,17,.18); background:rgba(17,17,17,.03); font-weight:900;
    }

    /* ===== Sidebar ===== */
    .sidebar{ position:sticky; top:72px; display:grid; gap:10px; }
    .sidebox{
      border:1px solid var(--line); border-radius:var(--radius);
      background:rgba(255,255,255,.92); padding:12px;
      box-shadow:0 10px 30px rgba(0,0,0,.05);
    }
    .sidebox .head{ font-weight:900; font-family:var(--serif); margin:0 0 6px; font-size:1.06rem; }
    .sidebox .muted{ color:var(--muted); font-size:.94rem; margin:0 0 8px; }
    .sidebox .list{ display:grid; gap:8px; margin-top:8px; }
    .sidebox .link{
      border:1px solid var(--line); border-radius:14px; padding:10px;
      background:rgba(17,17,17,.02);
    }
    .sidebox .link strong{ display:block; font-weight:900; }
    .sidebox .link small{ color:var(--muted); }
    .cta-primary{
      border-color:rgba(17,17,17,.22); background:rgba(17,17,17,.04);
    }
    .sidegrid{ display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:8px; }

    /* ===== Map ===== */
    .mapbox{
      border:1px solid var(--line); border-radius:var(--radius2);
      background:var(--soft); overflow:hidden;
      box-shadow:var(--shadow); margin:12px 0;
    }
    .map-embed{ position:relative; aspect-ratio:16/9; }
    .map-embed iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; display:block; }
    @media (max-width:720px){ .map-embed{ aspect-ratio:4/3; } }

    /* ===== FAQ accordion ===== */
    details{
      border:1px solid var(--line); border-radius:var(--radius);
      margin:8px 0; overflow:hidden;
    }
    summary{
      padding:12px 16px; cursor:pointer; font-weight:900;
      list-style:none; display:flex; justify-content:space-between; align-items:center;
    }
    summary::-webkit-details-marker{ display:none; }
    summary::after{ content:"▾"; font-weight:400; color:var(--muted); transition:transform .15s; }
    details[open] summary::after{ transform:rotate(180deg); }
    details > p{ padding:0 16px 14px; color:var(--muted); margin:0; }
    details > p:first-of-type{ padding-top:2px; }

    /* ===== Footer ===== */
    footer{ padding:32px 0 24px; border-top:1px solid var(--line); background:var(--bg); }
    .footer-grid{ display:grid; grid-template-columns:2fr 1fr 1fr; gap:24px; }
    @media (max-width:860px){ .footer-grid{ grid-template-columns:1fr; } }
    .footer-grid a{ border-bottom:1px solid rgba(17,17,17,.25); }
    .footer-col strong{ display:block; margin-bottom:10px; }
    .footer-links{ display:flex; flex-direction:column; gap:8px; }
    .footer-links a{ color:var(--ink); opacity:.72; text-decoration:none; font-size:.95rem; border-bottom:none !important; transition:opacity .15s; }
    .footer-links a:hover{ opacity:1; }

    /* ===== Summary box + Quick facts — side-by-side layout ===== */
    .ts-summary-box + .ts-quick-facts{
      margin-top:-1px; /* collapse gap when adjacent */
    }
    .ts-summary-box{
      padding:0;
    }
    .ts-summary-card{
      background:rgba(17,17,17,.03);
      border:1px solid var(--line);
      border-radius:var(--radius);
      padding:clamp(18px, 2.5vw, 28px) clamp(18px, 3vw, 32px);
    }
    .ts-summary-card h2{
      font-family:var(--serif);
      font-size:clamp(22px,2.2vw,28px);
      font-weight:900;
      letter-spacing:-0.01em;
      line-height:1.2;
      margin:0 0 12px;
    }
    .ts-summary-card .ts-rich-text{
      color:var(--muted);
      font-size:clamp(.92rem, 1.1vw, 1.02rem);
      line-height:1.7;
    }
    .ts-summary-card .ts-rich-text p{ margin:0 0 10px; }
    .ts-summary-card .ts-rich-text strong{ color:var(--ink); }

    /* Quick facts tiles */
    .ts-quick-facts{ padding:0; }
    .ts-quick-facts h2{
      font-family:var(--serif);
      font-size:clamp(20px,2vw,26px);
      font-weight:900;
      letter-spacing:-0.01em;
      margin:0 0 14px;
    }
    .ts-facts-grid{
      display:grid;
      grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));
      gap:12px;
    }
    .ts-fact-card{
      background:rgba(17,17,17,.03);
      border:1px solid var(--line);
      border-radius:var(--radius);
      padding:16px 18px;
      transition:box-shadow .15s ease, transform .15s ease;
    }
    .ts-fact-card:hover{
      box-shadow:0 4px 16px rgba(0,0,0,.06);
      transform:translateY(-1px);
    }
    .ts-fact-card strong{
      display:block;
      font-size:.82rem;
      text-transform:uppercase;
      letter-spacing:.04em;
      color:var(--muted);
      margin-bottom:6px;
    }
    .ts-fact-card p{
      margin:0;
      font-size:.95rem;
      line-height:1.5;
      color:var(--ink);
      font-weight:600;
    }

    /* Side-by-side wrapper when summary_box and quick_facts are adjacent */
    @media (min-width:768px){
      .ts-summary-quick-wrap{
        display:grid;
        grid-template-columns:2fr 1fr;
        gap:24px;
        align-items:start;
      }
      .ts-summary-quick-wrap .ts-summary-box,
      .ts-summary-quick-wrap .ts-quick-facts{ padding:0; }
      .ts-summary-quick-wrap .ts-facts-grid{
        grid-template-columns:1fr;
      }
      .ts-summary-quick-wrap .ts-quick-facts h2{
        font-size:clamp(18px,1.8vw,22px);
        margin:0 0 10px;
      }
      .ts-summary-quick-wrap .ts-fact-card{
        padding:12px 14px;
      }
      .ts-summary-quick-wrap .ts-fact-card strong{ font-size:.75rem; margin-bottom:4px; }
      .ts-summary-quick-wrap .ts-fact-card p{ font-size:.88rem; }
    }

    /* ===== Layout segments (full-width container for layout groups) ===== */
    .ts-layout-segment{ padding-top:8px; padding-bottom:8px; }

    /* ===== Layout group rows (multi-column layouts) ===== */
    .ts-layout-row{
      display:grid;
      gap:24px;
      align-items:start;
    }
    .ts-layout-row > section,
    .ts-layout-row > div{ padding:0; min-width:0; }
    /* Named layout presets */
    .ts-layout-row[data-layout="2fr-1fr"]{ grid-template-columns:2fr 1fr; }
    .ts-layout-row[data-layout="1fr-2fr"]{ grid-template-columns:1fr 2fr; }
    .ts-layout-row[data-layout="1fr-1fr"]{ grid-template-columns:1fr 1fr; }
    .ts-layout-row[data-layout="1fr-1fr-1fr"]{ grid-template-columns:1fr 1fr 1fr; }
    .ts-layout-row[data-layout="3fr-1fr"]{ grid-template-columns:3fr 1fr; }
    .ts-layout-row[data-layout="1fr-3fr"]{ grid-template-columns:1fr 3fr; }
    @media (max-width:767px){
      .ts-layout-row{ grid-template-columns:1fr !important; }
    }

    /* ===== Small text ===== */
    .small{ color:var(--muted); font-size:.92rem; margin:0 0 12px; }

    /* ===== Prose wrapper for content_section_prose ===== */
    .prose-body h2{ font-family:var(--serif); font-size:clamp(22px,2.2vw,30px); line-height:1.25; margin:26px 0 10px; letter-spacing:-0.01em; }
    .prose-body h3{ font-size:1.1rem; margin:16px 0 6px; line-height:1.35; }
    .prose-body p{ margin:0 0 12px; }
    .prose-body ul{ margin:0 0 12px; padding-left:18px; }
    .prose-body li{ margin:0 0 4px; }
    .prose-body a{ border-bottom:1px solid rgba(17,17,17,.25); }
    .prose-body strong{ color:var(--ink); }

/* Brand / logo styles */
.brand {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  color: inherit;
}
.brand-logo {
  display: block;
  height: 36px;
  width: auto;
  object-fit: contain;
}

/* ── Logo entrance animation — plays once ── */
@keyframes logoEntrance {
  0% {
    opacity: 0;
    transform: scale(0.3) rotate(-15deg);
    filter: blur(4px);
  }
  40% {
    opacity: 0.7;
    transform: scale(1.08) rotate(3deg);
    filter: blur(1px);
  }
  60% {
    transform: scale(0.95) rotate(-1deg);
    filter: blur(0);
  }
  80% {
    transform: scale(1.02) rotate(0.5deg);
    opacity: 1;
  }
  100% {
    opacity: 1;
    transform: scale(1) rotate(0deg);
    filter: blur(0);
  }
}

.brand-logo--animate {
  animation: logoEntrance 1.2s cubic-bezier(0.34, 1.56, 0.64, 1) both;
  animation-iteration-count: 1;
}

@media (prefers-reduced-motion: reduce) {
  .brand-logo--animate {
    animation: none;
  }
}