

  :root {
    --ink: #1A1A1A;
    --ivory: #F2F0EC;
    --gold: #B08D45;
    --gold-dim: #8A7245;
    --charcoal: #4A4A48;
    --mahogany: #1A1A1A;
    --hairline: rgba(242,240,236,0.14);
    --hairline-dark: rgba(26,26,26,0.12);

    --page-bg: var(--ivory);
    --page-text: var(--ink);
    --page-text-secondary: var(--charcoal);
    --page-hairline: var(--hairline-dark);
  }
  [data-theme="night"] {
    --page-bg: #1A1A1A;
    --page-text: var(--ivory);
    --page-text-secondary: rgba(242,240,236,0.68);
    --page-hairline: rgba(242,240,236,0.14);
  }
  body { transition: background 0.25s ease, color 0.25s ease; }
  * { box-sizing: border-box; }
  body {
    margin: 0;
    background: var(--page-bg);
    color: var(--page-text);
    font-family: Georgia, 'Times New Roman', serif;
  }
  .sans { font-family: Georgia, 'Times New Roman', serif; }
  a { color: inherit; text-decoration: none; }

  /* ---------- HEADER ---------- */
  header {
    position: absolute;
    top: 0; left: 0; right: 0;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 28px 56px;
  }
  .wordmark { font-size: 20px; letter-spacing: 0.02em; color: var(--ivory); }
  .wordmark span { color: var(--gold); }
  nav.sans { display: flex; gap: 36px; font-size: 13px; letter-spacing: 0.03em; color: var(--ivory); }
  nav.sans a { opacity: 0.85; padding-bottom: 2px; border-bottom: 1px solid transparent; }
  nav.sans a:hover { opacity: 1; border-bottom-color: var(--gold); }
  .mobile-menu-toggle {
    display: none;
    width: 40px; height: 40px;
    border-radius: 50%;
    border: 1px solid rgba(242,240,236,0.4);
    background: transparent;
    align-items: center; justify-content: center;
    cursor: pointer;
  }
  .mobile-menu-toggle svg { width: 20px; height: 20px; stroke: var(--ivory); }
  .mobile-nav-panel {
    display: none;
    position: absolute;
    top: 100%; left: 0; right: 0;
    background: var(--ink);
    flex-direction: column;
    padding: 8px 24px 20px;
    z-index: 15;
  }
  .mobile-nav-panel.open { display: flex; }
  .mobile-nav-panel a {
    font-family: Georgia, 'Times New Roman', serif;
    color: var(--ivory);
    font-size: 15px;
    padding: 12px 0;
    border-bottom: 1px solid rgba(242,240,236,0.12);
  }
  .mobile-nav-panel a:last-child { border-bottom: none; }
  .mobile-nav-theme-toggle { color: var(--gold) !important; font-size: 13px !important; letter-spacing: 0.03em; }

  .theme-toggle {
    width: 40px; height: 40px;
    border-radius: 50%;
    border: 1px solid rgba(242,240,236,0.4);
    background: transparent;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer;
  }
  .theme-toggle svg { width: 18px; height: 18px; stroke: var(--ivory); }
  .header-right { display: flex; align-items: center; gap: 14px; }
  .header-cta.sans {
    font-size: 13px; letter-spacing: 0.03em; color: var(--ink);
    background: var(--gold); padding: 10px 20px; border-radius: 24px;
    white-space: nowrap;
  }

  /* ---------- CATEGORY ICON ROW ---------- */
  .category-accordion-toggle { display: none; }
  .category-nav-bar {
    background: var(--page-bg);
    padding: 22px 56px 0;
    overflow-x: auto;
    border-bottom: 1px solid var(--page-hairline);
  }
  .category-nav-bar::-webkit-scrollbar { display: none; }
  .category-row {
    display: flex;
    justify-content: center;
    gap: 48px;
    min-width: max-content;
    margin: 0 auto;
  }
  .category-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    flex: 0 0 auto;
    cursor: pointer;
    padding: 0 0 18px;
    border: none;
    border-bottom: 2px solid transparent;
    background: none;
    font: inherit;
  }
  .category-item.active { border-bottom-color: var(--mahogany); }
  .category-icon {
    width: 32px; height: 32px;
    display: flex; align-items: center; justify-content: center;
  }
  .category-icon svg { width: 26px; height: 26px; stroke: var(--page-text-secondary); transition: stroke 0.2s ease; }
  .category-item.active .category-icon svg,
  .category-item:hover .category-icon svg { stroke: var(--mahogany); }
  .category-icon .brand-a {
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 22px;
    color: var(--page-text-secondary);
    line-height: 1;
    transition: color 0.2s ease;
  }
  .category-item.active .category-icon .brand-a,
  .category-item:hover .category-icon .brand-a { color: var(--mahogany); }
  .category-label.sans {
    font-size: 13px;
    color: var(--page-text-secondary);
    text-align: center;
    white-space: nowrap;
    transition: color 0.2s ease;
  }
  .category-item.active .category-label.sans,
  .category-item:hover .category-label.sans { color: var(--page-text); }

  .gallery-intro-block { padding: 44px 0 0; text-align: center; }

  /* ---------- HERO ---------- */
  .hero {
    position: relative;
    height: 92vh;
    min-height: 640px;
    display: flex;
    align-items: flex-end;
    background: linear-gradient(180deg, rgba(26,26,26,0.5) 0%, rgba(26,26,26,0.3) 40%, rgba(26,26,26,0.94) 100%),
                url('bundled-photo-836bd03a81de5daa.jpg') center 35%/cover no-repeat;
  }
  .hero-content { padding: 0 56px 88px; max-width: 760px; }
  .hero-eyebrow.sans { font-size: 13px; letter-spacing: 0.1em; color: #D9B56A; margin-bottom: 18px; text-shadow: 0 1px 12px rgba(0,0,0,0.55), 0 1px 2px rgba(0,0,0,0.4); }
  .hero h1 { font-size: 64px; line-height: 1.05; color: var(--ivory); margin: 0 0 22px; font-weight: 400; }
  .hero p { font-size: 19px; line-height: 1.6; color: rgba(242,240,236,0.82); max-width: 520px; margin: 0 0 34px; }
  .hero-actions { display: flex; gap: 18px; }
  .btn-primary.sans { background: var(--gold); color: var(--ink); padding: 15px 30px; font-size: 14px; letter-spacing: 0.02em; border-radius: 28px; }
  .btn-ghost.sans { border: 1px solid rgba(242,240,236,0.4); color: var(--ivory); padding: 15px 30px; font-size: 14px; letter-spacing: 0.02em; border-radius: 28px; }

  /* ---------- STRIP ---------- */
  .strip { background: var(--ink); position: relative; padding: 20px 56px; display: flex; justify-content: center; gap: 52px; flex-wrap: wrap; }
  .strip-mobile { display: none; }
  .header-badge-circle { display: none; }
  .strip-mobile-badge {
    display: flex; align-items: center; justify-content: center; gap: 6px;
    height: 34px; padding: 0 20px;
    background: var(--gold); border-radius: 18px;
  }
  .strip-mobile-rotator {
    font-size: 12px; letter-spacing: 0.12em; color: rgba(242,240,236,0.6);
    height: 16px; overflow: hidden; position: relative;
  }
  .strip-mobile-rotator.fade-out { opacity: 0; transition: opacity 0.3s ease; }
  .strip-mobile-rotator.fade-in { opacity: 1; transition: opacity 0.3s ease; }
  .strip span.sans { font-size: 12px; letter-spacing: 0.12em; color: rgba(242,240,236,0.5); }

  .strip-badge-rect {
    position: absolute;
    top: 50%; right: 32px;
    transform: translateY(-50%);
    display: flex; align-items: center; justify-content: center; gap: 8px;
    height: 34px;
    padding: 0 20px;
    background: var(--gold);
    border-radius: 18px;
  }
  .strip-badge-num {
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 20px;
    font-weight: bold;
    color: var(--ink);
    line-height: 1;
  }
  .strip-badge-label {
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 12px;
    letter-spacing: 0.08em;
    color: var(--ink);
    line-height: 1;
  }

  /* ---------- EDITORIAL / TRENDING ROW ---------- */
  .section { padding: 110px 56px; }
  .section + .section { padding-top: 0; }
  .section-narrow { max-width: 1180px; margin: 0 auto; }
  .kicker.sans { font-size: 13px; letter-spacing: 0.06em; color: var(--mahogany); margin-bottom: 16px; }
  .section h2 { font-size: 42px; line-height: 1.15; max-width: 620px; margin: 0 0 20px; font-weight: 400; color: var(--page-text); }
  .section .lede { font-size: 18px; color: var(--page-text-secondary); max-width: 560px; line-height: 1.65; margin: 0 0 56px; }
  .gallery-intro-block h2 { max-width: 700px; margin: 0 auto; }

  .trending-scroll {
    display: flex;
    gap: 20px;
    overflow-x: auto;
    padding-bottom: 12px;
    scroll-snap-type: x mandatory;
  }
  .trending-scroll::-webkit-scrollbar { height: 6px; }
  .trending-scroll::-webkit-scrollbar-thumb { background: var(--hairline-dark); border-radius: 4px; }
  .trend-card {
    position: relative;
    flex: 0 0 260px;
    height: 360px;
    border-radius: 16px;
    overflow: hidden;
    scroll-snap-align: start;
    background: var(--ink);
  }
  .trend-card img {
    width: 100%; height: 100%; object-fit: cover;
    filter: grayscale(10%);
    opacity: 0.88;
  }
  .trend-card .overlay {
    position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(26,26,26,0) 40%, rgba(26,26,26,0.92) 100%);
    display: flex; flex-direction: column; justify-content: flex-end;
    padding: 20px;
  }
  .trend-card .name { color: var(--ivory); font-size: 22px; margin: 0 0 6px; line-height: 1.15; }
  .trend-card .dash { width: 20px; height: 2px; background: var(--gold); margin-bottom: 10px; }
  .trend-card .role.sans { color: rgba(242,240,236,0.75); font-size: 13px; margin-bottom: 14px; }
  .trend-card .cta.sans {
    display: inline-block;
    border: 1px solid rgba(242,240,236,0.4);
    color: var(--ivory);
    font-size: 12px;
    padding: 8px 14px;
    border-radius: 20px;
    align-self: flex-start;
  }

  /* ---------- FEATURE SPLIT ---------- */
  .split { background: var(--ink); display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; }
  .split img { width: 100%; height: 100%; min-height: 520px; object-fit: cover; }
  .split-copy { padding: 90px 72px; display: flex; flex-direction: column; justify-content: center; }
  .split-copy .kicker.sans { color: var(--gold); }
  .split-copy h2 { color: var(--ivory); font-size: 38px; margin: 0 0 22px; font-weight: 400; }
  .split-copy p { color: rgba(242,240,236,0.75); font-size: 17px; line-height: 1.7; margin: 0 0 32px; max-width: 460px; }
  .split-copy a.sans { color: var(--gold); font-size: 14px; letter-spacing: 0.02em; border-bottom: 1px solid var(--gold-dim); padding-bottom: 4px; align-self: flex-start; }

  /* ---------- QUOTE ---------- */
  .quote-section { padding: 60px 56px 100px; text-align: center; background: var(--page-bg); }
  .quote-section blockquote { font-size: 34px; line-height: 1.4; max-width: 780px; margin: 0 auto 28px; font-style: italic; color: var(--page-text); }
  .quote-section .attribution.sans { font-size: 14px; color: var(--page-text-secondary); letter-spacing: 0.02em; }
  .quote-carousel { position: relative; min-height: 180px; }
  .quote-slide {
    position: absolute; top: 0; left: 0; right: 0;
    opacity: 0; visibility: hidden;
    transition: opacity 0.5s ease;
  }
  .quote-slide.active { position: relative; opacity: 1; visibility: visible; }
  .quote-dots { display: flex; justify-content: center; gap: 10px; margin-top: 36px; }
  .quote-dot {
    width: 9px; height: 9px; border-radius: 50%;
    background: var(--hairline-dark); border: none; cursor: pointer;
    padding: 0; transition: background 0.2s ease;
  }
  .quote-dot.active { background: var(--mahogany); }
  .leave-review-link {
    display: block;
    text-align: center;
    margin-top: 32px;
    font-size: 13px; font-weight: bold; color: var(--mahogany);
    letter-spacing: 0.02em;
  }

  /* ---------- COLLECTIONS ---------- */
  .collections { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; padding: 0 56px 110px; background: var(--page-bg); }

  .coming-soon-panel {
    padding: 0 56px 110px;
    background: var(--page-bg);
  }
  .coming-soon-inner {
    max-width: 640px; margin: 0 auto;
    text-align: center;
    padding: 64px 48px;
    border: 1px solid var(--gold);
    border-radius: 20px;
    background: var(--ivory);
  }
  .coming-soon-mark {
    width: 64px; height: 64px;
    border-radius: 50%;
    background: var(--gold);
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    margin: 0 auto 28px;
  }
  .coming-soon-num { font-family: Georgia, 'Times New Roman', serif; font-size: 22px; font-weight: bold; color: var(--ink); line-height: 1; }
  .coming-soon-label { font-family: Georgia, 'Times New Roman', serif; font-size: 10px; letter-spacing: 0.08em; color: var(--ink); margin-top: 2px; }
  .coming-soon-inner .kicker.sans { text-align: center; }
  .coming-soon-inner h3 {
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 28px; font-weight: 400; line-height: 1.25;
    color: var(--ink); margin: 0 0 20px;
  }
  .coming-soon-inner p {
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 16px; line-height: 1.7; color: var(--charcoal);
    margin: 0 0 16px;
  }
  .coming-soon-inner .coming-soon-sub {
    font-style: italic; color: var(--mahogany);
    margin-bottom: 32px;
  }
  .collection-tile { display: block; position: relative; height: 420px; background: var(--ink); overflow: hidden; border-radius: 16px; }
  .collection-tile img { width: 100%; height: 100%; object-fit: cover; opacity: 0.75; transition: opacity 0.3s ease, transform 0.4s ease; }
  .collection-tile:hover img { opacity: 0.9; transform: scale(1.03); }
  .collection-tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,0.82) 0%, rgba(0,0,0,0.46) 30%, rgba(0,0,0,0.08) 65%, transparent 100%); pointer-events: none; }
  .collection-tile .label { position: absolute; z-index: 1; left: clamp(24px, 3vw, 40px); right: 24px; bottom: 36px; text-shadow: 0 2px 10px rgba(0,0,0,0.35); }
  .collection-tile .label .kicker.sans { color: #FFF; margin-bottom: 10px; font-weight: 600; }
  .collection-tile .label h3 { color: #FFF; font-size: 26px; line-height: 1.2; margin: 0; font-weight: 500; }

  .store-actions { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
  .btn-outline-ink.sans { display: inline-block; border: 1px solid var(--ink); color: var(--ink); padding: 15px 30px; font-size: 14px; letter-spacing: 0.02em; border-radius: 28px; }
  .visit-second { margin-top: 12px; padding-top: 32px; border-top: 1px solid var(--hairline-dark); }
  .visit-second .kicker.sans { margin-bottom: 10px; }
  .visit-second h3 { font-family: Georgia, 'Times New Roman', serif; font-size: 22px; font-weight: 400; color: var(--ink); margin: 0 0 14px; }
  .footer-bottom { gap: 24px; }

  /* ---------- BROWSE MENU ---------- */
  .header-left { display: flex; align-items: center; gap: 28px; }
  .browse { position: relative; }
  .browse-toggle {
    display: flex; align-items: center; gap: 8px;
    font-family: Georgia, 'Times New Roman', serif; font-size: 13px; letter-spacing: 0.03em;
    color: var(--ivory); background: transparent;
    border: 1px solid rgba(242,240,236,0.4); border-radius: 24px;
    padding: 9px 16px 9px 18px; cursor: pointer;
  }
  .browse-toggle:hover, .browse.open .browse-toggle { border-color: var(--gold); }
  .browse-toggle svg { width: 14px; height: 14px; stroke: currentColor; transition: transform 0.2s ease; }
  .browse.open .browse-toggle svg { transform: rotate(180deg); }
  .browse-panel {
    display: none; position: absolute; top: calc(100% + 12px); left: 0;
    width: 300px; padding: 10px 0 14px;
    background: var(--ink); border: 1px solid var(--hairline); border-radius: 14px;
    box-shadow: 0 18px 40px rgba(0,0,0,0.35);
  }
  .browse-panel { display: block; opacity: 0; visibility: hidden; transform: translateY(-6px); transition: opacity var(--t-med) var(--ease), transform var(--t-med) var(--ease), visibility 0s linear var(--t-med); }
  .browse.open .browse-panel { opacity: 1; visibility: visible; transform: none; transition: opacity var(--t-med) var(--ease), transform var(--t-med) var(--ease), visibility 0s; }
  .browse-row { position: static; }
  .browse-link {
    width: 100%; display: flex; align-items: center; justify-content: space-between;
    padding: 13px 24px; background: none; border: none; cursor: pointer; text-align: left;
    font-family: Georgia, 'Times New Roman', serif; font-size: 16px; color: var(--ivory) !important;
  }
  .browse-link:hover, .browse-link:focus-visible, .browse-row.open > .browse-link { background: rgba(242,240,236,0.06); color: var(--gold) !important; outline: none; }
  .browse-link svg { width: 16px; height: 16px; stroke: rgba(242,240,236,0.6); flex-shrink: 0; }
  .browse-row.open > .browse-link svg, .browse-link:hover svg { stroke: var(--gold); }
  .browse-heading { padding: 12px 24px 6px; font-family: Georgia, 'Times New Roman', serif; font-size: 12px; letter-spacing: 0.04em; color: var(--gold); }
  .browse-flyout-sub { padding: 14px 24px 4px; font-family: Georgia, 'Times New Roman', serif; font-size: 12px; letter-spacing: 0.04em; color: rgba(242,240,236,0.45); }
  .browse-flyout a.browse-flyout-all { margin-top: 8px; border-top: 1px solid var(--hairline); padding-top: 14px; }
  .browse-divider { height: 1px; background: var(--hairline); margin: 8px 24px; }
  .browse-flyout {
    display: none; position: absolute; top: -1px; left: calc(100% + 8px);
    width: 260px; min-height: 100%; padding: 22px 0 14px;
    background: var(--ink); border: 1px solid var(--hairline); border-radius: 14px;
    box-shadow: 0 18px 40px rgba(0,0,0,0.35);
  }
  .browse-flyout { display: block; opacity: 0; visibility: hidden; transform: translateX(-4px); transition: opacity var(--t-fast) var(--ease), transform var(--t-fast) var(--ease), visibility 0s linear var(--t-fast); }
  .browse-row.open > .browse-flyout { opacity: 1; visibility: visible; transform: none; transition: opacity var(--t-fast) var(--ease), transform var(--t-fast) var(--ease), visibility 0s; }
  .browse-flyout-title { padding: 0 24px 10px; font-family: Georgia, 'Times New Roman', serif; font-size: 13px; color: var(--gold); }
  .browse-flyout a {
    display: block; padding: 11px 24px;
    font-family: Georgia, 'Times New Roman', serif; font-size: 15px; color: rgba(242,240,236,0.85) !important;
  }
  .browse-flyout a:hover, .browse-flyout a:focus-visible { background: rgba(242,240,236,0.06); color: var(--gold) !important; outline: none; }
  .browse-flyout a .ext { font-size: 12px; color: rgba(242,240,236,0.45); margin-left: 6px; }
  .browse-all {
    display: block; margin: 12px 20px 0; padding: 12px; text-align: center;
    border: 1px solid rgba(242,240,236,0.4); border-radius: 24px;
    font-family: Georgia, 'Times New Roman', serif; font-size: 14px; color: var(--ivory) !important;
  }
  .browse-all:hover { border-color: var(--gold); color: var(--gold) !important; }
  #page-restoration .browse-toggle, #page-category .browse-toggle, #page-grand .browse-toggle, #page-lessons .browse-toggle, #page-storage .browse-toggle { color: var(--ink); border-color: rgba(26,26,26,0.3); }
  #page-restoration .browse-toggle:hover, #page-restoration .browse.open .browse-toggle,
  #page-category .browse-toggle:hover, #page-category .browse.open .browse-toggle, #page-grand .browse-toggle:hover, #page-grand .browse.open .browse-toggle, #page-lessons .browse-toggle:hover, #page-lessons .browse.open .browse-toggle, #page-storage .browse-toggle:hover, #page-storage .browse.open .browse-toggle { border-color: var(--gold); }
  .header-left { flex: 1; min-width: 0; gap: 20px; margin-right: 32px; }
  header .header-right { margin-left: 28px; flex-shrink: 0; }
  header nav.sans { flex-shrink: 0; }
  .header-search {
    flex: 1; max-width: 340px; min-width: 160px;
    display: flex; align-items: center; gap: 10px;
    padding: 0 16px; height: 40px;
    background: rgba(242,240,236,0.1); border: 1px solid rgba(242,240,236,0.25); border-radius: 24px;
  }
  .header-search:focus-within { border-color: var(--gold); background: rgba(26,26,26,0.45); }
  .header-search svg { width: 16px; height: 16px; stroke: rgba(242,240,236,0.75); flex-shrink: 0; }
  .header-search input {
    flex: 1; min-width: 0; background: none; border: none; outline: none;
    font-family: Georgia, 'Times New Roman', serif; font-size: 14px; color: var(--ivory);
  }
  .header-search input::placeholder { color: rgba(242,240,236,0.6); }
  .header-search input::-webkit-search-cancel-button { filter: invert(1); }
  #page-restoration .header-search, #page-category .header-search, #page-grand .header-search, #page-lessons .header-search, #page-storage .header-search { background: rgba(26,26,26,0.04); border-color: rgba(26,26,26,0.2); }
  #page-restoration .header-search svg, #page-category .header-search svg, #page-grand .header-search svg, #page-lessons .header-search svg, #page-storage .header-search svg { stroke: var(--charcoal); }
  #page-restoration .header-search input, #page-category .header-search input, #page-grand .header-search input, #page-lessons .header-search input, #page-storage .header-search input { color: var(--ink); }
  #page-restoration .header-search input::placeholder, #page-category .header-search input::placeholder, #page-grand .header-search input::placeholder, #page-lessons .header-search input::placeholder, #page-storage .header-search input::placeholder { color: var(--charcoal); }
  #page-restoration .header-search input::-webkit-search-cancel-button, #page-category .header-search input::-webkit-search-cancel-button, #page-grand .header-search input::-webkit-search-cancel-button, #page-lessons .header-search input::-webkit-search-cancel-button, #page-storage .header-search input::-webkit-search-cancel-button { filter: none; }
  @media (max-width: 1360px) {
    nav.sans { gap: 26px !important; }
  }
  @media (max-width: 1180px) {
    .header-search { display: none; }
  }
  @media (max-width: 860px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
    .browse { display: none; }
  }

  /* ---------- COLLECTION PAGE (category template) ---------- */
  .cat-hero { background: var(--ivory); padding: 56px 56px 120px; }
  .cat-hero-inner {
    max-width: 1180px; margin: 0 auto;
    display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 88px; align-items: center;
  }
  .cat-lockup { display: inline-flex; flex-direction: column; margin-bottom: 40px; }
  .cat-lockup-brand { font-family: Georgia, 'Times New Roman', serif; font-size: 27px; line-height: 1; color: var(--ink); letter-spacing: -0.01em; }
  .cat-lockup-name { font-family: Georgia, 'Times New Roman', serif; font-size: 13px; letter-spacing: 0.24em; text-transform: uppercase; color: var(--ink); margin-top: 8px; }
  #page-category .cat-hero h1, #page-grand .cat-hero h1, #page-lessons .cat-hero h1, #page-storage .cat-hero h1 {
    font-family: Georgia, 'Times New Roman', serif; font-weight: 400;
    font-size: 58px; line-height: 1.06; letter-spacing: -0.025em;
    color: var(--ink); margin: 0 0 28px; max-width: 15ch;
  }
  .cat-intro { font-family: Georgia, 'Times New Roman', serif; font-size: 19px; line-height: 1.65; color: var(--charcoal); margin: 0 0 40px; max-width: 34em; }
  .cat-actions { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; }
  #page-category .cat-btn, #page-grand .cat-btn, #page-lessons .cat-btn, #page-storage .cat-btn {
    display: inline-flex; align-items: center; gap: 14px;
    background: var(--ink); color: var(--ivory);
    padding: 16px 18px 16px 28px; border-radius: 30px; font-size: 15px; letter-spacing: 0.01em;
    transition: background 0.2s ease;
  }
  #page-category .cat-btn:hover, #page-grand .cat-btn:hover, #page-lessons .cat-btn:hover, #page-storage .cat-btn:hover { background: #000; }
  .cat-btn-arrow { width: 26px; height: 26px; border-radius: 50%; background: var(--gold); display: flex; align-items: center; justify-content: center; }
  .cat-btn-arrow svg { width: 15px; height: 15px; stroke: var(--ink); transition: transform 0.2s ease; }
  #page-category .cat-btn:hover .cat-btn-arrow svg, #page-grand .cat-btn:hover .cat-btn-arrow svg, #page-lessons .cat-btn:hover .cat-btn-arrow svg, #page-storage .cat-btn:hover .cat-btn-arrow svg { transform: translateX(2px); }
  #page-category .cat-link, #page-grand .cat-link, #page-lessons .cat-link, #page-storage .cat-link { font-size: 15px; color: var(--ink); border-bottom: 1px solid var(--gold); padding-bottom: 3px; }
  #page-category .cat-link:hover, #page-grand .cat-link:hover, #page-lessons .cat-link:hover, #page-storage .cat-link:hover { color: var(--gold-dim); }
  .cat-media { margin: 0; border-radius: 18px; overflow: hidden; aspect-ratio: 1 / 1; background: var(--ink); }
  .cat-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
  /* Collection heroes (Grand, Upright, Digital & Hybrid, Pre-owned): 4:3 keeps the photo about 25% shorter than square so it doesn't outweigh the text. */
  #page-category .cat-media, #page-grand .cat-media, #page-lessons .cat-media, #page-storage .cat-media { aspect-ratio: 4 / 3; }
  .cat-facts {
    max-width: 1180px; margin: 96px auto 0;
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 0;
  }
  .cat-fact { padding: 4px 32px 4px 28px; border-left: 1px solid var(--hairline-dark); }
  .cat-fact h3 { font-family: Georgia, 'Times New Roman', serif; font-size: 17px; font-weight: bold; color: var(--ink); margin: 0 0 12px; }
  .cat-fact p { font-family: Georgia, 'Times New Roman', serif; font-size: 15px; line-height: 1.65; color: var(--charcoal); margin: 0; }
  @media (max-width: 1080px) {
    .cat-hero-inner { gap: 48px; }
    #page-category .cat-hero h1, #page-grand .cat-hero h1, #page-lessons .cat-hero h1, #page-storage .cat-hero h1 { font-size: 46px; }
    .cat-facts { grid-template-columns: repeat(2, 1fr); row-gap: 40px; }
  }
  @media (max-width: 860px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
    .cat-hero { padding: 32px 24px 72px; }
    .cat-hero-inner { grid-template-columns: 1fr; }
    .cat-lockup { margin-bottom: 28px; }
    #page-category .cat-hero h1, #page-grand .cat-hero h1, #page-lessons .cat-hero h1, #page-storage .cat-hero h1 { font-size: 38px; }
    .cat-intro { font-size: 17px; }
    .cat-facts { margin-top: 64px; }
  }
  @media (max-width: 560px) {
    .cat-facts { grid-template-columns: 1fr; row-gap: 32px; }
  }

  /* ---------- GRAND PAGE ---------- */
  .gd-section { padding: 0 56px 130px; background: var(--ivory); }
  #page-grand .gd-title, #page-category .gd-title, #page-lessons .gd-title, #page-storage .gd-title { font-family: Georgia, 'Times New Roman', serif; font-weight: 400; font-size: 48px; line-height: 1.1; letter-spacing: -0.02em; color: var(--ink); text-align: center; margin: 0 auto 64px; max-width: 26ch; }
  #page-grand .gd-title.gd-left, #page-category .gd-title.gd-left, #page-lessons .gd-title.gd-left, #page-storage .gd-title.gd-left { text-align: left; margin: 0 0 32px; }
  .gd-size-row { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
  .gd-size-card { background: #FAF8F4; border-radius: 16px; overflow: hidden; display: flex; flex-direction: column; }
  .gd-size-card img { width: 100%; aspect-ratio: 16 / 11; object-fit: cover; display: block; background: var(--ink); }
  .gd-size-body { padding: 26px 24px 24px; display: flex; flex-direction: column; flex: 1; }
  .gd-size-body h3 { font-family: Georgia, 'Times New Roman', serif; font-size: 21px; font-weight: 400; color: var(--ink); margin: 0 0 6px; }
  .gd-size-range { font-family: Georgia, 'Times New Roman', serif; font-size: 14px; color: var(--charcoal); padding-bottom: 18px; margin-bottom: 18px; border-bottom: 1px dotted rgba(26,26,26,0.35); }
  .gd-size-body p { font-family: Georgia, 'Times New Roman', serif; font-size: 15px; line-height: 1.6; color: var(--charcoal); margin: 0 0 28px; }
  .gd-size-foot { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
  .gd-size-meta { display: flex; align-items: center; gap: 6px; font-family: Georgia, 'Times New Roman', serif; font-size: 13px; color: var(--charcoal); }
  .gd-size-meta svg { width: 18px; height: 18px; stroke: var(--charcoal); }
  #page-grand .gd-outline-btn, #page-category .gd-outline-btn, #page-lessons .gd-outline-btn, #page-storage .gd-outline-btn { font-size: 14px; color: var(--ink); border: 1.5px solid var(--ink); border-radius: 24px; padding: 9px 16px; white-space: nowrap; }
  #page-grand .gd-outline-btn:hover, #page-category .gd-outline-btn:hover, #page-lessons .gd-outline-btn:hover, #page-storage .gd-outline-btn:hover { background: var(--ink); color: var(--ivory); }

  .gd-path-inner { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: 0.85fr 1.15fr; gap: 72px; align-items: center; }
  .gd-pill { display: inline-block; background: var(--gold); color: var(--ink); font-size: 12px; letter-spacing: 0.04em; padding: 6px 14px; border-radius: 20px; margin-bottom: 26px; }
  .gd-path-copy p { font-family: Georgia, 'Times New Roman', serif; font-size: 17px; line-height: 1.7; color: var(--ink); margin: 0 0 16px; max-width: 30em; }
  .gd-path-copy .cat-actions { margin-top: 36px; gap: 16px; }
  #page-grand .gd-light-btn, #page-category .gd-light-btn, #page-lessons .gd-light-btn, #page-storage .gd-light-btn { font-size: 15px; background: #FAF8F4; color: var(--ink); padding: 16px 26px; border-radius: 30px; }
  #page-grand .gd-light-btn:hover, #page-category .gd-light-btn:hover, #page-lessons .gd-light-btn:hover, #page-storage .gd-light-btn:hover { background: #fff; }
  .gd-path-stage { background: #E7E3DA; border-radius: 28px; padding: 52px; }
  .gd-path-card { background: #FAF8F4; border-radius: 20px; padding: 44px 44px 36px; }
  .gd-path-card-head { text-align: center; margin-bottom: 32px; }
  .gd-path-card-head h3 { font-family: Georgia, 'Times New Roman', serif; font-size: 24px; font-weight: 400; color: var(--ink); margin: 0 0 8px; }
  .gd-path-card-head span { font-family: Georgia, 'Times New Roman', serif; font-size: 14px; color: var(--charcoal); }
  .gd-steps { list-style: none; margin: 0 0 30px; padding: 0 0 0 24px; border-left: 3px solid var(--gold); }
  .gd-steps li { display: flex; gap: 18px; align-items: flex-start; padding: 16px 0; border-bottom: 1px solid var(--hairline-dark); }
  .gd-steps li:first-child { padding-top: 4px; }
  .gd-steps li:last-child { border-bottom: none; padding-bottom: 4px; }
  .gd-step-num { font-family: Georgia, 'Times New Roman', serif; font-size: 22px; color: var(--gold); line-height: 1.1; min-width: 16px; }
  .gd-steps h4 { font-family: Georgia, 'Times New Roman', serif; font-size: 18px; font-weight: 400; color: var(--ink); margin: 0 0 4px; }
  .gd-steps p { font-family: Georgia, 'Times New Roman', serif; font-size: 14px; line-height: 1.55; color: var(--charcoal); margin: 0; }
  .gd-callout { display: flex; align-items: center; gap: 22px; background: #EFEBE3; border-radius: 16px; padding: 20px 24px; }
  .gd-callout-mark { flex-shrink: 0; width: 76px; height: 76px; border-radius: 12px; background: var(--gold); display: flex; flex-direction: column; align-items: center; justify-content: center; }
  .gd-callout-num { font-family: Georgia, 'Times New Roman', serif; font-size: 30px; font-weight: bold; color: var(--ink); line-height: 1; }
  .gd-callout-label { font-family: Georgia, 'Times New Roman', serif; font-size: 11px; letter-spacing: 0.08em; color: var(--ink); margin-top: 3px; }
  .gd-callout h4 { font-family: Georgia, 'Times New Roman', serif; font-size: 19px; font-weight: 400; color: var(--ink); margin: 0 0 4px; }
  .gd-callout p { font-family: Georgia, 'Times New Roman', serif; font-size: 14px; line-height: 1.55; color: var(--charcoal); margin: 0; }

  .gd-brands-grid { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; column-gap: 32px; row-gap: 36px; }
  .gd-brands-photo { margin: 0; border-radius: 16px; overflow: hidden; aspect-ratio: 1 / 1; background: var(--ink); }
  .gd-brands-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
  .gd-brand-tiles { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; background: #FAF8F4; border-radius: 16px; overflow: hidden; aspect-ratio: 1 / 1; }
  .gd-brand-tile { display: flex; align-items: center; justify-content: center; text-align: center; padding: 20px; transition: background 0.2s ease; }
  .gd-brand-tile:nth-child(odd) { border-right: 1px solid var(--hairline-dark); }
  .gd-brand-tile:nth-child(-n+2) { border-bottom: 1px solid var(--hairline-dark); }
  .gd-brand-tile span { font-family: Georgia, 'Times New Roman', serif; font-size: 28px; color: var(--ink); letter-spacing: 0.01em; }
  .gd-brand-tile:hover { background: #fff; }
  .gd-brand-tile:hover span { color: var(--gold-dim); }
  .gd-brands-caption h3 { font-family: Georgia, 'Times New Roman', serif; font-size: 20px; font-weight: bold; color: var(--ink); margin: 0 0 12px; }
  .gd-brands-caption p { font-family: Georgia, 'Times New Roman', serif; font-size: 16px; line-height: 1.65; color: var(--charcoal); margin: 0; max-width: 32em; }

  .gd-dark { background: var(--ink); padding: 96px 56px 120px; }
  .gd-signup { max-width: 1180px; margin: 0 auto 130px; background: var(--gold); border-radius: 22px; padding: 60px 72px; display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
  #page-grand .gd-signup h2, #page-category .gd-signup h2, #page-lessons .gd-signup h2, #page-storage .gd-signup h2 { font-family: Georgia, 'Times New Roman', serif; font-size: 26px; font-weight: 400; line-height: 1.35; color: var(--ink); margin: 0; max-width: 20ch; }
  .gd-signup-row { display: flex; gap: 10px; }
  .gd-signup-row input { flex: 1; min-width: 0; font-family: Georgia, 'Times New Roman', serif; font-size: 15px; color: var(--ink); background: rgba(242,240,236,0.35); border: 1.5px solid var(--ink); border-radius: 10px; padding: 14px 16px; outline: none; }
  .gd-signup-row input::placeholder { color: rgba(26,26,26,0.6); }
  .gd-signup-row input:focus { background: rgba(242,240,236,0.6); }
  .gd-signup-row button { font-size: 15px; background: var(--ink); color: var(--ivory); border: none; border-radius: 10px; padding: 0 24px; cursor: pointer; }
  .gd-consent { display: flex; gap: 10px; align-items: flex-start; margin-top: 14px; font-family: Georgia, 'Times New Roman', serif; font-size: 13px; line-height: 1.5; color: var(--ink); cursor: pointer; }
  .gd-consent input { margin-top: 2px; accent-color: var(--ink); width: 16px; height: 16px; flex-shrink: 0; }
  .gd-signup-msg { font-family: Georgia, 'Times New Roman', serif; font-size: 14px; color: var(--ink); margin: 10px 0 0; min-height: 1em; }

  .gd-faq { max-width: 1180px; margin: 0 auto; }
  #page-grand .gd-faq .gd-title, #page-category .gd-faq .gd-title, #page-lessons .gd-faq .gd-title, #page-storage .gd-faq .gd-title { color: var(--ivory); }
  .gd-faq-list { border-top: 1px dotted rgba(242,240,236,0.3); }
  .gd-faq-item { border-bottom: 1px dotted rgba(242,240,236,0.3); }
  .gd-faq-q { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 24px; background: none; border: none; cursor: pointer; text-align: left; padding: 34px 0; font-family: Georgia, 'Times New Roman', serif; font-size: 22px; color: var(--ivory); }
  .gd-faq-q:focus-visible { outline: 2px solid var(--gold); outline-offset: 4px; }
  .faq-icon { flex-shrink: 0; width: 34px; height: 34px; border-radius: 50%; background: var(--gold); display: flex; align-items: center; justify-content: center; transition: transform 0.25s ease; }
  .faq-icon svg { width: 16px; height: 16px; stroke: var(--ink); }
  .gd-faq-q[aria-expanded="true"] .faq-icon { transform: rotate(45deg); }
  .gd-faq-a { padding: 0 64px 34px 0; max-width: 820px; }
  .gd-faq-a p, .gd-faq-a li { font-family: Georgia, 'Times New Roman', serif; font-size: 17px; line-height: 1.7; color: rgba(242,240,236,0.75); }
  .gd-faq-a p { margin: 0 0 14px; }
  .gd-faq-a ul { margin: 0 0 14px; padding-left: 20px; }
  #page-grand .gd-faq-a a, #page-category .gd-faq-a a, #page-lessons .gd-faq-a a, #page-storage .gd-faq-a a { color: var(--gold); border-bottom: 1px solid var(--gold-dim); }
  .gd-final { background: var(--ivory); }
  .gd-size-row.gd-cols-3 { grid-template-columns: repeat(3, 1fr); }
  .gd-center { justify-content: center; }

  @media (max-width: 1080px) {
    #page-grand .gd-title, #page-category .gd-title, #page-lessons .gd-title, #page-storage .gd-title { font-size: 40px; }
    .gd-size-row { grid-template-columns: repeat(2, 1fr); }
    .gd-path-inner { grid-template-columns: 1fr; gap: 48px; }
    .gd-signup { grid-template-columns: 1fr; gap: 28px; padding: 48px; }
  }
  @media (max-width: 860px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
    .gd-section { padding: 0 24px 90px; }
    #page-grand .gd-title, #page-category .gd-title, #page-lessons .gd-title, #page-storage .gd-title { font-size: 32px; margin-bottom: 40px; }
    .gd-size-row { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 14px; margin: 0 -24px; padding: 0 24px 8px; }
    .gd-size-card { flex: 0 0 78%; scroll-snap-align: start; }
    .gd-path-stage { padding: 20px; border-radius: 22px; }
    .gd-path-card { padding: 28px 22px 22px; }
    .gd-callout { flex-direction: column; align-items: flex-start; }
    .gd-brands-grid { grid-template-columns: 1fr; }
    .gd-brands-photo { order: 1; } .gd-cap-photo { order: 2; } .gd-brand-tiles { order: 3; } .gd-brands-caption:not(.gd-cap-photo) { order: 4; }
    .gd-brand-tile span { font-size: 22px; }
    .gd-dark { padding: 64px 24px 80px; }
    .gd-signup { padding: 32px 24px; margin-bottom: 80px; }
    .gd-signup-row { flex-direction: column; }
    .gd-signup-row button { padding: 14px; }
    .gd-faq-q { font-size: 18px; padding: 26px 0; }
    .gd-faq-a { padding-right: 0; }
  }
  @media (prefers-reduced-motion: reduce) {
    .faq-icon { transition: none; }
  }

  .gd-sub { font-family: Georgia, 'Times New Roman', serif; font-size: 18px; line-height: 1.65; color: var(--charcoal); text-align: center; max-width: 36em; margin: -40px auto 56px; }
  .gd-feature-stage { max-width: 1180px; margin: 0 auto 28px; background: #E7E3DA; border-radius: 28px; padding: 44px; }
  .gd-feature-video { position: relative; aspect-ratio: 16 / 9; border-radius: 18px; overflow: hidden; background: radial-gradient(ellipse at 70% 30%, #3a332a 0%, var(--ink) 65%); display: flex; align-items: center; justify-content: center; }
  .gd-feature-play { width: 84px; height: 84px; border-radius: 50%; background: var(--gold); color: var(--ink); display: flex; align-items: center; justify-content: center; }
  .gd-feature-play svg { width: 32px; height: 32px; margin-left: 4px; }
  .gd-feature-caption { position: absolute; left: 44px; bottom: 40px; right: 44px; }
  #page-grand .gd-feature-caption h3, #page-category .gd-feature-caption h3, #page-category .gd-feature-caption h3, #page-lessons .gd-feature-caption h3, #page-storage .gd-feature-caption h3 { font-family: Georgia, 'Times New Roman', serif; font-size: 40px; font-weight: 400; letter-spacing: -0.02em; color: var(--ivory); margin: 0 0 8px; }
  .gd-feature-caption p { font-family: Georgia, 'Times New Roman', serif; font-size: 16px; color: rgba(242,240,236,0.7); margin: 0; }
  .gd-soon { position: absolute; top: 18px; right: 18px; z-index: 1; background: var(--ivory); color: var(--ink); font-size: 12px; letter-spacing: 0.04em; padding: 6px 13px; border-radius: 20px; }
  .gd-video-grid { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
  .gd-video-card { background: #FAF8F4; border-radius: 16px; overflow: hidden; display: flex; flex-direction: column; }
  .gd-video-thumb { position: relative; aspect-ratio: 16 / 9; background: radial-gradient(ellipse at 70% 30%, #3a332a 0%, var(--ink) 70%); display: flex; align-items: center; justify-content: center; }
  .gd-thumb-play { width: 48px; height: 48px; border-radius: 50%; border: 1.5px solid rgba(242,240,236,0.7); color: var(--ivory); display: flex; align-items: center; justify-content: center; }
  .gd-thumb-play svg { width: 18px; height: 18px; margin-left: 3px; }
  .gd-video-body { padding: 24px 24px 26px; display: flex; flex-direction: column; flex: 1; }
  .gd-video-num { font-size: 13px; color: var(--gold-dim); margin-bottom: 8px; }
  .gd-video-body h3 { font-family: Georgia, 'Times New Roman', serif; font-size: 19px; font-weight: 400; line-height: 1.3; color: var(--ink); margin: 0 0 10px; }
  .gd-video-body p { font-family: Georgia, 'Times New Roman', serif; font-size: 15px; line-height: 1.6; color: var(--charcoal); margin: 0 0 22px; }
  #page-grand .gd-video-link, #page-category .gd-video-link, #page-category .gd-video-link, #page-lessons .gd-video-link, #page-storage .gd-video-link { margin-top: auto; align-self: flex-start; font-size: 14px; color: var(--ink); border-bottom: 1px solid var(--gold); padding-bottom: 2px; }
  #page-grand .gd-video-link:hover, #page-category .gd-video-link:hover, #page-category .gd-video-link:hover, #page-lessons .gd-video-link:hover, #page-storage .gd-video-link:hover { color: var(--gold-dim); }
  #page-grand .gd-video-link.gd-muted, #page-category .gd-video-link.gd-muted, #page-category .gd-video-link.gd-muted, #page-lessons .gd-video-link.gd-muted, #page-storage .gd-video-link.gd-muted { color: var(--charcoal); border-bottom-color: transparent; }
  @media (max-width: 1080px) {
    .gd-video-grid { grid-template-columns: repeat(2, 1fr); }
  }
  @media (max-width: 860px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
    .gd-sub { font-size: 16px; margin: -24px auto 36px; }
    .gd-feature-stage { padding: 14px; border-radius: 20px; }
    .gd-feature-play { width: 60px; height: 60px; }
    .gd-feature-play svg { width: 24px; height: 24px; }
    .gd-feature-caption { left: 18px; bottom: 16px; right: 18px; }
    #page-grand .gd-feature-caption h3, #page-category .gd-feature-caption h3, #page-category .gd-feature-caption h3, #page-lessons .gd-feature-caption h3, #page-storage .gd-feature-caption h3 { font-size: 22px; margin: 0; }
    .gd-feature-caption p { display: none; }
    .gd-soon { top: 12px; right: 12px; font-size: 11px; }
    .gd-video-grid { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 14px; margin: 0 -24px; padding: 0 24px 8px; }
    .gd-video-card { flex: 0 0 78%; scroll-snap-align: start; }
  }

  /* ---------- MOTION SYSTEM ---------- */
  :root { --ease: cubic-bezier(0.22, 1, 0.36, 1); --t-fast: 160ms; --t-med: 260ms; --t-slow: 400ms; }
  html { scroll-behavior: smooth; }
  :where(a, button, input, select, textarea) {
    transition-property: color, background-color, border-color, box-shadow, opacity;
    transition-duration: var(--t-fast);
    transition-timing-function: var(--ease);
  }
  :where(a, button, input, select, textarea, [tabindex]):focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
  @keyframes fc-fade-in { from { opacity: 0; } to { opacity: 1; } }
  @keyframes fc-rise-in { from { opacity: 0; transform: translateY(10px) scale(0.985); } to { opacity: 1; transform: none; } }
  @keyframes fc-drop-in { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
  .modal-backdrop { animation: fc-fade-in var(--t-med) var(--ease); }
  .modal-backdrop .modal-card { animation: fc-rise-in var(--t-slow) var(--ease); }
  .mobile-nav-panel.open { animation: fc-drop-in var(--t-med) var(--ease); }
  .fc-img { opacity: 0; transition: opacity var(--t-slow) var(--ease); }
  .fc-img.is-loaded { opacity: 1; }
  .gd-size-card img { transition: transform 700ms var(--ease), opacity var(--t-slow) var(--ease); }
  .gd-size-card:hover img { transform: scale(1.03); }
  .gd-video-card .gd-thumb-play { transition: transform var(--t-med) var(--ease), background-color var(--t-med) var(--ease); }
  .gd-video-card:hover .gd-thumb-play { transform: scale(1.08); background-color: rgba(242,240,236,0.12); }
  .gd-faq-a { overflow: hidden; }
  @media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
    .gd-size-card:hover img, .gd-video-card:hover .gd-thumb-play { transform: none; }
  }

  /* ---------- FOOTER ---------- */
  footer { background: var(--ink); padding: 72px 56px 36px; }
  .footer-top { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 40px; padding-bottom: 40px; border-bottom: 1px solid var(--hairline); }
  .footer-top p.sans { color: rgba(242,240,236,0.55); font-size: 14px; line-height: 1.6; max-width: 280px; }
  .footer-top .wordmark { margin-bottom: 16px; }
  .footer-social { display: flex; gap: 14px; margin-top: 18px; }
  .footer-social a {
    width: 34px; height: 34px;
    border-radius: 50%;
    border: 1px solid rgba(242,240,236,0.3);
    display: flex; align-items: center; justify-content: center;
  }
  .footer-social a:hover { border-color: var(--gold); }
  .footer-social svg { width: 16px; height: 16px; stroke: rgba(242,240,236,0.7); }
  .threads-at { font-family: Georgia, 'Times New Roman', serif; font-size: 16px; color: rgba(242,240,236,0.7); line-height: 1; }
  .footer-social a:hover .threads-at { color: var(--gold); }
  .footer-social a:hover svg { stroke: var(--gold); }
  .footer-col .col-title.sans { font-size: 12px; letter-spacing: 0.08em; color: var(--gold); margin-bottom: 18px; }
  .footer-col a.sans { display: block; font-size: 14px; color: rgba(242,240,236,0.7); margin-bottom: 12px; }
  .footer-bottom { display: flex; justify-content: space-between; padding-top: 28px; }
  .footer-bottom span.sans { font-size: 12px; color: rgba(242,240,236,0.4); }

  /* ---------- GRAND COLLECTION PAGE ---------- */
  .gp-hero { background: var(--ink); padding: 150px 56px 44px; }
  .gp-hero-grid { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 56px; align-items: center; }
  .gp-hero-photo { position: relative; border-radius: 16px; overflow: hidden; }
  .gp-hero-photo img { width: 100%; height: 340px; object-fit: cover; display: block; }
  .gp-hero-play {
    position: absolute; left: 24px; bottom: 24px;
    display: flex; align-items: center; gap: 10px;
    background: var(--ivory); border: none; border-radius: 24px;
    padding: 12px 20px 12px 16px; cursor: pointer;
  }
  .gp-hero-play svg { width: 12px; height: 12px; color: var(--ink); }
  .gp-hero-play span { font-size: 14px; font-weight: bold; color: var(--ink); }
  .gp-hero .kicker.sans { color: var(--gold); }
  .gp-hero-right { text-align: center; }
  .gp-hero h1 { font-family: Georgia, 'Times New Roman', serif; font-size: 44px; line-height: 1.1; font-weight: bold; color: var(--ivory); margin: 0 0 12px; }
  .gp-hero-tagline.sans { font-size: 17px; color: rgba(242,240,236,0.85); margin-bottom: 8px; }
  .gp-hero-tagline.sans::after { content: ''; display: block; width: 40px; height: 2px; background: var(--mahogany); margin: 10px auto 0; }
  .gp-hero-sub { font-size: 17px; color: rgba(242,240,236,0.75); line-height: 1.65; margin: 0 auto 4px; max-width: 480px; }
  .gp-hero-more-link {
    background: none; border: none; cursor: pointer;
    font-size: 14px; color: rgba(242,240,236,0.9);
    text-decoration: underline; padding: 0; margin-bottom: 22px;
    display: inline-block;
  }
  .gp-hero-actions { display: flex; gap: 12px; margin-bottom: 24px; flex-wrap: wrap; justify-content: center; }
  #page-grand .gp-hero-actions .btn-primary.sans, #page-grand .gp-hero-actions .btn-ghost-dark.sans, #page-lessons .gp-hero-actions .btn-primary.sans, #page-lessons .gp-hero-actions .btn-ghost-dark.sans, #page-storage .gp-hero-actions .btn-primary.sans, #page-storage .gp-hero-actions .btn-ghost-dark.sans { border-radius: 6px; padding: 11px 20px; font-size: 13px; }
  .btn-ghost-dark.sans { border: 1px solid rgba(242,240,236,0.4); color: var(--ivory); padding: 15px 30px; font-size: 14px; letter-spacing: 0.02em; border-radius: 28px; }
  #page-grand .btn-ghost-dark.sans, #page-lessons .btn-ghost-dark.sans, #page-storage .btn-ghost-dark.sans { color: var(--ivory); }
  .gp-hero-info { display: flex; align-items: center; justify-content: center; padding: 10px 14px; background: rgba(242,240,236,0.06); border-radius: 8px; max-width: 420px; margin: 0 auto; }
  .gp-hero-info-badge {
    width: 32px; height: 32px; border-radius: 50%; flex-shrink: 0;
    background: var(--gold); color: var(--ink);
    display: flex; align-items: center; justify-content: center;
    font-family: Georgia, 'Times New Roman', serif; font-weight: bold; font-size: 12px;
  }
  .gp-hero-info p.sans { font-size: 12px; color: rgba(242,240,236,0.7); line-height: 1.5; margin: 0; font-weight: 400; }
  .gp-hero-info p.sans a { color: var(--gold); border-bottom: 1px solid rgba(176,141,64,0.4); }

  .gp-gallery { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 40px; }
  .gp-gallery-item { display: flex; flex-direction: column; gap: 10px; }
  .gp-gallery-item img { width: 100%; height: 220px; object-fit: cover; border-radius: 12px; }
  .gp-gallery-item span { font-size: 13px; color: var(--charcoal); text-align: center; }

  .gp-feature-row {
    background: var(--ivory);
    padding: 32px 56px 36px;
    max-width: 1180px; margin: 0 auto;
    display: grid; grid-template-columns: repeat(4, 1fr);
    gap: 36px;
  }
  .gp-feature-item { text-align: center; }
  .gp-feature-item svg { width: 32px; height: 32px; stroke: var(--charcoal); margin-bottom: 16px; }
  .gp-feature-item h4 { font-family: Georgia, 'Times New Roman', serif; font-size: 16px; font-weight: bold; color: var(--ink); margin: 0 0 10px; }
  .gp-feature-item p { font-size: 14px; line-height: 1.55; color: var(--charcoal); margin: 0; }

  .gp-video-section { background: var(--ivory); padding: 0 56px 28px; }
  #page-grand section.gp-video-section + section.section, #page-lessons section.gp-video-section + section.section, #page-storage section.gp-video-section + section.section { padding-top: 0; }
  #page-grand section.section, #page-lessons section.section, #page-storage section.section { padding: 48px 56px; }
  #page-grand section.section + section.section, #page-lessons section.section + section.section, #page-storage section.section + section.section { padding-top: 0; }
  #page-grand section.collections, #page-lessons section.collections, #page-storage section.collections { padding: 0 56px 44px; }
  #page-grand section.story-cta, #page-lessons section.story-cta, #page-storage section.story-cta { padding: 48px 56px; }
  #page-grand section.collections + section.story-cta, #page-lessons section.collections + section.story-cta, #page-storage section.collections + section.story-cta { padding-top: 0; }
  .gp-video-box {
    max-width: 1180px; margin: 0 auto;
    position: relative;
    background: var(--ink);
    border-radius: 16px;
    min-height: 620px;
    display: flex; align-items: center; justify-content: center;
    overflow: hidden;
  }
  .gp-play-btn {
    width: 72px; height: 72px; border-radius: 50%;
    background: var(--gold); border: none; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    color: var(--ink);
  }
  .gp-play-btn svg { width: 28px; height: 28px; margin-left: 3px; }
  .gp-video-caption {
    position: absolute; left: 40px; bottom: 32px; text-align: left;
  }
  .gp-video-caption .kicker.sans { color: var(--gold); }
  .gp-video-caption h3 { font-family: Georgia, 'Times New Roman', serif; font-size: 26px; font-weight: 400; color: var(--ivory); margin: 0 0 6px; }
  .gp-video-caption p.sans { font-size: 13px; color: rgba(242,240,236,0.6); margin: 0; font-style: italic; }

  .gp-offer-callout {
    display: grid; grid-template-columns: 280px 1fr;
    max-width: 780px; height: 170px; margin: 32px auto 0;
    background: rgba(176,141,64,0.08);
    border-radius: 10px;
    overflow: hidden;
    text-align: left;
  }
  .gp-offer-photo { height: 170px; overflow: hidden; }
  .gp-offer-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
  .gp-offer-text { padding: 0 28px; display: flex; align-items: center; justify-content: center; }
  .gp-offer-text p { font-size: 14px; line-height: 1.5; color: var(--charcoal); margin: 0; text-align: center; }

  .gp-zigzag {
    position: relative;
    max-width: 1180px; margin: 40px auto 48px;
    height: 560px;
  }
  .gp-zigzag-track {
    position: absolute; top: 50%; left: 0; right: 0;
    height: 2px; background: var(--hairline-dark);
  }
  .gp-zigzag-dot {
    position: absolute; top: 50%;
    width: 14px; height: 14px; border-radius: 50%;
    background: var(--hairline-dark);
    transform: translate(-50%, -50%);
  }
  .gp-zigzag-card {
    position: absolute;
    min-width: 230px;
    transform: translateX(-50%);
    text-align: left;
    background: var(--ivory);
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.08);
    overflow: visible;
  }
  .gp-zigzag-top { bottom: calc(50% + 55px); }
  .gp-zigzag-bottom { top: calc(50% + 55px); }
  .gp-zigzag-photo { height: 150px; overflow: hidden; }
  .gp-zigzag-top .gp-zigzag-photo { border-radius: 10px 10px 0 0; }
  .gp-zigzag-bottom .gp-zigzag-photo { border-radius: 0 0 10px 10px; }
  .gp-zigzag-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
  .gp-zigzag-label { font-size: 13px; color: var(--charcoal); opacity: 0.7; padding: 18px 20px 0; }
  .gp-zigzag-title { font-family: Georgia, 'Times New Roman', serif; font-size: 19px; font-weight: bold; color: var(--ink); padding: 5px 20px 20px; white-space: nowrap; }
  .gp-zigzag-arrow {
    position: absolute; left: 50%; width: 16px; height: 16px;
    background: var(--ivory);
    transform: translateX(-50%) rotate(45deg);
  }
  .gp-zigzag-top .gp-zigzag-arrow { bottom: -8px; box-shadow: 3px 3px 4px rgba(0,0,0,0.04); }
  .gp-zigzag-bottom .gp-zigzag-arrow { top: -8px; box-shadow: -3px -3px 4px rgba(0,0,0,0.04); }

  .gp-knowledge-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px; margin-top: 40px; text-align: left; }
  .gp-knowledge-col h4 { font-family: Georgia, 'Times New Roman', serif; font-size: 19px; font-weight: 400; color: var(--ink); margin: 0 0 16px; border-bottom: 1px solid var(--hairline-dark); padding-bottom: 14px; }
  .gp-knowledge-col ul { list-style: none; padding: 0; margin: 0; }
  .gp-knowledge-col li {
    font-size: 14px; color: var(--charcoal); line-height: 1.5;
    padding: 10px 0 10px 24px;
    position: relative;
    border-bottom: 1px solid var(--hairline-dark);
  }
  .gp-knowledge-col li:last-child { border-bottom: none; }
  .gp-knowledge-col li::before {
    content: '';
    position: absolute; left: 0; top: 15px;
    width: 6px; height: 6px; border-radius: 50%;
    background: var(--mahogany);
  }

  .gp-accordion { max-width: 900px; margin: 40px auto 0; text-align: left; }
  .gp-accordion-item { border-bottom: 1px solid var(--hairline-dark); }
  .gp-accordion-head {
    width: 100%; display: flex; align-items: center; justify-content: space-between;
    padding: 22px 4px; background: none; border: none; cursor: pointer;
    font-family: Georgia, 'Times New Roman', serif; font-size: 17px; color: var(--ink); text-align: left;
  }
  .gp-accordion-num { color: var(--gold); font-weight: bold; margin-right: 10px; }
  .gp-accordion-head .chevron { width: 18px; height: 18px; stroke: var(--charcoal); flex-shrink: 0; transition: transform 0.25s ease; }
  .gp-accordion-item.open .gp-accordion-head .chevron { transform: rotate(180deg); }
  .gp-accordion-body { max-height: 0; overflow: hidden; transition: max-height 0.35s ease; }
  .gp-accordion-item.open .gp-accordion-body { max-height: 260px; }
  .gp-accordion-video-card { display: flex; gap: 24px; padding: 0 4px 28px; align-items: flex-start; }
  .gp-accordion-thumb {
    flex: 0 0 160px;
    height: 100px;
    background: #3a3a3a;
    border-radius: 8px;
    display: flex; align-items: center; justify-content: center;
  }
  .gp-accordion-thumb .gp-play-btn-sm {
    width: 40px; height: 40px; border-radius: 50%;
    background: rgba(242,240,236,0.85); border: none;
    display: flex; align-items: center; justify-content: center;
    color: var(--ink);
  }
  .gp-accordion-thumb .gp-play-btn-sm svg { width: 16px; height: 16px; margin-left: 2px; }
  .gp-accordion-desc.sans { font-size: 15px; line-height: 1.65; color: var(--charcoal); margin: 0; flex: 1; }
  .gp-accordion-desc .gp-video-label { display: block; font-size: 11px; letter-spacing: 0.08em; color: var(--gold); margin-bottom: 6px; }

  @media (max-width: 860px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
    .gp-accordion-video-card { flex-direction: column; gap: 14px; }
    .gp-accordion-thumb { flex: 0 0 auto; width: 100%; }
    .gp-accordion-item.open .gp-accordion-body { max-height: 340px; }
  }

  @media (max-width: 860px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
    .gp-hero { padding: 110px 24px 40px; }
    .gp-hero-grid { grid-template-columns: 1fr; gap: 40px; }
    .gp-feature-row { grid-template-columns: 1fr; gap: 32px; padding: 28px 24px 32px; }
    .gp-hero h1 { font-size: 30px; }
    .gp-hero-right { text-align: left; }
    .gp-gallery { grid-template-columns: repeat(2, 1fr); }
    .gp-zigzag { height: auto; }
    .gp-zigzag-track, .gp-zigzag-dot { display: none; }
    .gp-zigzag-card {
      position: static; width: 100%; transform: none;
      margin-bottom: 24px; bottom: auto; top: auto;
    }
    .gp-zigzag-arrow { display: none; }
    .gp-knowledge-grid { grid-template-columns: 1fr; gap: 36px; }
    .gp-video-box { min-height: 260px; }
    .gp-video-caption { left: 20px; bottom: 20px; }
  }

  .visit-gallery {
    display: grid;
    grid-template-columns: 0.85fr 1.15fr;
    background: var(--ivory);
    border-top: 1px solid var(--hairline-dark);
  }
  .visit-info { padding: 64px 56px; }
  .visit-info .kicker.sans { color: var(--mahogany); margin-bottom: 14px; }
  .visit-info h3 {
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 28px; font-weight: 400; color: var(--ink);
    margin: 0 0 18px;
  }
  .visit-info p.sans { font-size: 15px; line-height: 1.7; color: var(--charcoal); margin: 0 0 10px; }
  .visit-info p.sans a { color: var(--charcoal); border-bottom: 1px solid var(--hairline-dark); }
  .visit-address-link {
    display: flex; align-items: flex-start; gap: 10px;
    margin-bottom: 14px;
  }
  .visit-address-link svg { width: 20px; height: 20px; stroke: var(--mahogany); flex-shrink: 0; margin-top: 2px; }
  .visit-address-link span { font-size: 15px; line-height: 1.7; color: var(--charcoal); border-bottom: 1px solid var(--hairline-dark); }
  .visit-address-link:hover span { color: var(--mahogany); border-bottom-color: var(--mahogany); }
  .hours-table { margin-bottom: 10px; }
  .hours-row {
    display: flex; justify-content: space-between;
    font-size: 14px; color: var(--charcoal);
    padding: 5px 0;
    border-bottom: 1px solid var(--hairline-dark);
    max-width: 260px;
  }
  .hours-row:last-child { border-bottom: none; }
  .hours-note.sans { font-size: 12px; font-style: italic; color: var(--charcoal); opacity: 0.75; margin: 6px 0 0; }
  .visit-directions {
    display: inline-block;
    font-size: 14px; font-weight: bold; color: var(--mahogany);
    margin: 6px 0 36px;
  }
  .visit-hours .kicker.sans { color: var(--mahogany); margin-bottom: 10px; }
  .visit-hours-pending { font-style: italic; color: var(--charcoal); font-size: 14px; }
  .visit-map { min-height: 340px; }
  .visit-map iframe { width: 100%; height: 100%; border: 0; display: block; filter: grayscale(15%) contrast(1.03); }

  @media (max-width: 860px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
    .visit-gallery { grid-template-columns: 1fr; }
    .visit-info { padding: 40px 24px; }
    .visit-map { min-height: 260px; }
  }

  /* ---------- PROMO MODAL (MasterClass-style) ---------- */
  .modal-backdrop {
    position: fixed; inset: 0; z-index: 100;
    background: rgba(26,26,26,0.6);
    display: flex; align-items: center; justify-content: center;
    padding: 24px;
  }
  .modal-card {
    position: relative;
    background: var(--ivory);
    border: 1px solid var(--gold);
    max-width: 420px; width: 100%;
    padding: 44px 40px 36px;
    text-align: center;
    border-radius: 20px;
  }
  .modal-close {
    position: absolute; top: 16px; right: 16px;
    width: 28px; height: 28px;
    border: 1px solid var(--hairline-dark);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    color: var(--ink); font-size: 14px; cursor: pointer;
    background: transparent;
  }
  .modal-badge.sans {
    display: inline-block;
    background: var(--gold);
    color: var(--ink);
    font-size: 11px; letter-spacing: 0.08em;
    padding: 6px 14px; border-radius: 20px;
    margin-bottom: 22px;
  }
  .modal-card h3 { font-size: 26px; line-height: 1.3; margin: 0 0 6px; color: var(--ink); font-weight: 400; }
  .modal-card .modal-highlight { font-size: 30px; color: var(--mahogany); margin: 0 0 22px; }
  .modal-card p.sans { font-size: 14px; color: var(--charcoal); line-height: 1.6; margin: 0 0 6px; }
  .modal-card .terms.sans { font-size: 12px; color: var(--gold-dim); text-decoration: underline; margin-bottom: 26px; display: inline-block; }
  .modal-cta.sans {
    display: block; width: 100%;
    background: var(--mahogany); color: var(--ivory);
    font-size: 14px; letter-spacing: 0.02em;
    padding: 15px; border-radius: 28px; border: none; cursor: pointer;
    text-align: center;
  }

  .connect-card { text-align: center; max-width: 440px; padding: 44px 40px 40px; }
  .connect-kicker.sans {
    font-size: 12px; letter-spacing: 0.1em;
    color: var(--charcoal);
    margin-bottom: 18px;
    text-align: center;
  }
  .connect-kicker.sans span { color: var(--mahogany); }
  .connect-heading {
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 28px; line-height: 1.25;
    color: var(--ink); font-weight: 400;
    margin: 0 0 12px;
    text-align: center;
  }
  .connect-sub.sans { font-size: 15px; color: var(--charcoal); line-height: 1.5; margin: 0 0 28px; text-align: center; }
  .connect-option {
    position: relative;
    display: flex; align-items: center; justify-content: center;
    width: 100%;
    padding: 16px 20px;
    border-radius: 30px;
    font-size: 15px; font-weight: bold;
    margin-bottom: 14px;
    box-sizing: border-box;
    transition: transform 0.18s ease, background 0.18s ease, color 0.18s ease, box-shadow 0.18s ease;
  }
  .connect-option:last-child { margin-bottom: 0; }
  .connect-option svg {
    position: absolute;
    left: 28px; top: 50%;
    transform: translateY(-50%);
    width: 20px; height: 20px; flex-shrink: 0; stroke: currentColor;
  }
  .connect-option-solid { background: var(--gold); color: var(--ink); }
  .connect-option-solid:hover {
    background: var(--mahogany); color: var(--ivory);
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(0,0,0,0.18);
  }
  .connect-option-outline { background: transparent; color: var(--mahogany); border: 1.5px solid var(--mahogany); }
  .connect-option-outline:hover {
    background: var(--mahogany); color: var(--ivory);
    border-color: var(--mahogany);
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(0,0,0,0.18);
  }

  /* ---------- STICKY BOTTOM OFFER BAR ---------- */
  .offer-bar {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
    background: var(--mahogany);
    color: var(--ivory);
    padding: 16px 56px;
    display: flex; align-items: center; justify-content: center;
    flex-wrap: wrap; gap: 40px;
    transform: translateY(100%);
    transition: transform 0.4s ease;
  }
  .offer-bar.visible { transform: translateY(0); }
  .offer-bar .left { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
  .offer-bar .headline.sans { font-size: 16px; letter-spacing: 0.01em; }
  .offer-bar .headline.sans b { color: var(--gold); font-weight: 400; }
  .offer-bar .sub.sans { font-size: 14px; color: rgba(242,240,236,0.7); }
  .offer-bar .right { display: flex; gap: 12px; align-items: center; }
  .offer-btn.sans { font-size: 14px; padding: 10px 18px; border-radius: 24px; letter-spacing: 0.02em; }
  .offer-btn.outline { border: 1px solid rgba(242,240,236,0.4); color: var(--ivory); }
  .offer-btn.solid { background: var(--gold); color: var(--ink); }
  .offer-close {
    width: 20px; height: 20px;
    border-radius: 50%;
    border: 1px solid rgba(242,240,236,0.4);
    background: transparent;
    color: var(--ivory);
    font-size: 13px;
    line-height: 1;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer;
    margin-left: 4px;
  }
  .offer-close:hover { border-color: var(--ivory); }

  @media (max-width: 860px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
    header { padding: 16px 16px; }
    .header-right { gap: 8px; }
    .header-cta.sans { padding: 8px 14px; font-size: 12px; }
    nav.sans { display: none; }
    .mobile-menu-toggle { display: flex; }
    .theme-toggle { display: none; }
    .hero-content { padding: 0 24px 64px; }
    .hero h1 { font-size: 40px; }
    .section { padding: 72px 24px; }
    .collections, .split, .footer-top { grid-template-columns: 1fr; }
    .split-copy { padding: 56px 24px; }
    .quote-section blockquote { font-size: 24px; }
    .offer-bar { padding: 14px 20px; flex-direction: column; align-items: flex-start; }
    .offer-bar .right { width: 100%; }
    .offer-btn.sans { flex: 1; text-align: center; }
    .gallery-intro-block h2 { font-size: 28px; }
    .category-row { gap: 20px; }
    .category-nav-bar { overflow-x: visible; padding: 20px 16px 0; }
    .category-row {
      width: 100%;
      min-width: 0;
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      justify-items: center;
    }
    .strip-desktop { display: none; }
    .category-accordion-toggle {
      display: flex; width: 100%;
      align-items: center; justify-content: space-between;
      padding: 18px 24px;
      background: var(--page-bg);
      border: none; border-bottom: 1px solid var(--page-hairline);
      font-size: 15px; color: var(--page-text);
      cursor: pointer;
    }
    .category-accordion-toggle .chevron { width: 18px; height: 18px; stroke: var(--page-text); transition: transform 0.25s ease; }
    .category-accordion-toggle[aria-expanded="true"] .chevron { transform: rotate(180deg); }
    #categoryNavBar { display: none; }
    #categoryNavBar.open { display: block; }
    .strip-mobile {
      display: flex; align-items: center; justify-content: center;
      background: var(--ink); padding: 10px 24px;
    }
    .header-badge-circle {
      display: flex; flex-direction: column;
      align-items: center; justify-content: center;
      width: 38px; height: 38px;
      border-radius: 50%;
      border: 1px solid var(--gold);
      flex-shrink: 0;
    }
    .header-badge-num { font-family: Georgia, 'Times New Roman', serif; font-size: 12px; font-weight: bold; color: var(--gold); line-height: 1; }
    .header-badge-label { font-family: Georgia, 'Times New Roman', serif; font-size: 6px; letter-spacing: 0.06em; color: var(--gold); margin-top: 1px; }
    .trending-scroll {
      display: flex;
      flex-direction: column;
      overflow-x: visible;
      gap: 20px;
    }
    .trend-card { flex: 0 0 auto; width: 100%; }
  }


/* ================= OUR STORY PAGE (scoped) ================= */

  :root {
    --ink: #1A1A1A;
    --ivory: #F2F0EC;
    --gold: #B08D45;
    --gold-dim: #8A7245;
    --charcoal: #4A4A48;
    --mahogany: #1A1A1A;
    --hairline: rgba(242,240,236,0.14);
    --hairline-dark: rgba(26,26,26,0.12);
  }
#page-story *, #page-rentals *, #page-category *, #page-visit *, #page-restoration *, #page-grand * , #page-events *, #page-lessons *, #page-storage * { box-sizing: border-box; }
#page-story body, #page-rentals body, #page-category body, #page-visit body, #page-restoration body, #page-grand body , #page-events body, #page-lessons body, #page-storage body {
    margin: 0;
    background: var(--ivory);
    color: var(--ink);
    font-family: Georgia, 'Times New Roman', serif;
  }
#page-story .sans, #page-rentals .sans, #page-category .sans, #page-visit .sans, #page-restoration .sans, #page-grand .sans , #page-events .sans, #page-lessons .sans, #page-storage .sans { font-family: Georgia, 'Times New Roman', serif; }
#page-story a, #page-rentals a, #page-category a, #page-visit a, #page-restoration a, #page-grand a , #page-events a, #page-lessons a, #page-storage a { color: inherit; text-decoration: none; }/* ---------- HEADER ---------- */
#page-story header, #page-rentals header, #page-category header, #page-visit header, #page-restoration header, #page-grand header , #page-events header, #page-lessons header, #page-storage header {
    position: absolute;
    top: 0; left: 0; right: 0;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 28px 56px;
  }
#page-story .wordmark, #page-rentals .wordmark, #page-category .wordmark, #page-visit .wordmark, #page-restoration .wordmark, #page-grand .wordmark , #page-events .wordmark, #page-lessons .wordmark, #page-storage .wordmark { font-size: 20px; letter-spacing: 0.02em; color: var(--ivory); }
#page-story .wordmark span, #page-rentals .wordmark span, #page-category .wordmark span, #page-visit .wordmark span, #page-restoration .wordmark span, #page-grand .wordmark span , #page-events .wordmark span, #page-lessons .wordmark span, #page-storage .wordmark span { color: var(--gold); }
#page-story .wordmark.dark, #page-rentals .wordmark.dark, #page-category .wordmark.dark, #page-visit .wordmark.dark, #page-restoration .wordmark.dark, #page-grand .wordmark.dark , #page-events .wordmark.dark, #page-lessons .wordmark.dark, #page-storage .wordmark.dark { color: var(--ink); }
#page-story .wordmark.dark span, #page-rentals .wordmark.dark span, #page-category .wordmark.dark span, #page-visit .wordmark.dark span, #page-restoration .wordmark.dark span, #page-grand .wordmark.dark span , #page-events .wordmark.dark span, #page-lessons .wordmark.dark span, #page-storage .wordmark.dark span { color: var(--mahogany); }
#page-story nav.sans, #page-rentals nav.sans, #page-category nav.sans, #page-visit nav.sans, #page-restoration nav.sans, #page-grand nav.sans , #page-events nav.sans, #page-lessons nav.sans, #page-storage nav.sans { display: flex; gap: 36px; font-size: 13px; letter-spacing: 0.03em; color: var(--ivory); }
#page-story nav.sans a, #page-rentals nav.sans a, #page-category nav.sans a, #page-visit nav.sans a, #page-restoration nav.sans a, #page-grand nav.sans a , #page-events nav.sans a, #page-lessons nav.sans a, #page-storage nav.sans a { opacity: 0.85; padding-bottom: 2px; border-bottom: 1px solid transparent; }
#page-story nav.sans a:hover, #page-rentals nav.sans a:hover, #page-category nav.sans a:hover, #page-visit nav.sans a:hover, #page-restoration nav.sans a:hover, #page-grand nav.sans a:hover , #page-events nav.sans a:hover, #page-lessons nav.sans a:hover, #page-storage nav.sans a:hover { opacity: 1; border-bottom-color: var(--gold); }
#page-story .header-cta.sans, #page-rentals .header-cta.sans, #page-category .header-cta.sans, #page-visit .header-cta.sans, #page-restoration .header-cta.sans, #page-grand .header-cta.sans , #page-events .header-cta.sans, #page-lessons .header-cta.sans, #page-storage .header-cta.sans {
    font-size: 13px; letter-spacing: 0.03em; color: var(--ink);
    background: var(--gold); padding: 10px 20px; border-radius: 24px;
  }/* ---------- STORY HERO ---------- */
#page-story .story-hero, #page-rentals .story-hero, #page-category .story-hero, #page-visit .story-hero, #page-restoration .story-hero, #page-grand .story-hero , #page-events .story-hero, #page-lessons .story-hero, #page-storage .story-hero {
    position: relative;
    height: 56vh;
    min-height: 420px;
    display: flex;
    align-items: flex-end;
    background: linear-gradient(180deg, rgba(26,26,26,0.45) 0%, rgba(26,26,26,0.35) 40%, rgba(26,26,26,0.92) 100%),
                url('bundled-photo-a259998f809d9d37.jpg') center 50%/cover no-repeat;
  }
#page-story .story-hero-content, #page-rentals .story-hero-content, #page-category .story-hero-content, #page-visit .story-hero-content, #page-restoration .story-hero-content, #page-grand .story-hero-content , #page-events .story-hero-content, #page-lessons .story-hero-content, #page-storage .story-hero-content { padding: 0 56px 64px; max-width: 760px; }
#page-story .story-eyebrow.sans, #page-rentals .story-eyebrow.sans, #page-category .story-eyebrow.sans, #page-visit .story-eyebrow.sans, #page-restoration .story-eyebrow.sans, #page-grand .story-eyebrow.sans , #page-events .story-eyebrow.sans, #page-lessons .story-eyebrow.sans, #page-storage .story-eyebrow.sans { font-size: 13px; letter-spacing: 0.08em; color: var(--gold); margin-bottom: 18px; }
#page-story .story-hero h1, #page-rentals .story-hero h1, #page-category .story-hero h1, #page-visit .story-hero h1, #page-restoration .story-hero h1, #page-grand .story-hero h1 , #page-events .story-hero h1, #page-lessons .story-hero h1, #page-storage .story-hero h1 { font-size: 52px; line-height: 1.1; color: var(--ivory); margin: 0; font-weight: 400; }/* ---------- INTRO ---------- */
#page-story .section, #page-rentals .section, #page-category .section, #page-visit .section, #page-restoration .section, #page-grand .section , #page-events .section, #page-lessons .section, #page-storage .section { padding: 90px 56px; }
#page-story .section-narrow, #page-rentals .section-narrow, #page-category .section-narrow, #page-visit .section-narrow, #page-restoration .section-narrow, #page-grand .section-narrow , #page-events .section-narrow, #page-lessons .section-narrow, #page-storage .section-narrow { max-width: 1180px; margin: 0 auto; }
#page-story .section-narrow.center, #page-rentals .section-narrow.center, #page-category .section-narrow.center, #page-visit .section-narrow.center, #page-restoration .section-narrow.center, #page-grand .section-narrow.center , #page-events .section-narrow.center, #page-lessons .section-narrow.center, #page-storage .section-narrow.center { max-width: 760px; text-align: center; }
#page-story .kicker.sans, #page-rentals .kicker.sans, #page-category .kicker.sans, #page-visit .kicker.sans, #page-restoration .kicker.sans, #page-grand .kicker.sans , #page-events .kicker.sans, #page-lessons .kicker.sans, #page-storage .kicker.sans { font-size: 13px; letter-spacing: 0.06em; color: var(--mahogany); margin-bottom: 16px; }
#page-story .section h2, #page-rentals .section h2, #page-category .section h2, #page-visit .section h2, #page-restoration .section h2, #page-grand .section h2 , #page-events .section h2, #page-lessons .section h2, #page-storage .section h2 { font-size: 36px; line-height: 1.2; margin: 0 0 24px; font-weight: 400; }
#page-story .section p.lede, #page-rentals .section p.lede, #page-category .section p.lede, #page-visit .section p.lede, #page-restoration .section p.lede, #page-grand .section p.lede , #page-events .section p.lede, #page-lessons .section p.lede, #page-storage .section p.lede { font-size: 19px; color: var(--charcoal); line-height: 1.7; margin: 0; }/* ---------- TIMELINE ---------- */
#page-story .timeline { background: var(--ink); padding: 90px 56px; }
#page-story .timeline-row {
    max-width: 1180px; margin: 0 auto;
    display: grid; grid-template-columns: 140px 1fr; gap: 32px;
    padding: 32px 0; border-bottom: 1px solid var(--hairline);
  }
#page-story .timeline-row:last-child { border-bottom: none; }
#page-story .timeline-year { font-size: 32px; color: var(--gold); font-weight: 400; }
#page-story .timeline-text h3 { color: var(--ivory); font-size: 20px; margin: 0 0 8px; font-weight: 400; }
#page-story .timeline-text p { color: rgba(242,240,236,0.72); font-size: 16px; line-height: 1.65; margin: 0; max-width: 640px; }/* ---------- FOUNDER SPLIT ---------- */
#page-story .founder-split {
    display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 0;
    background: var(--ivory);
  }
#page-story .founder-photo-slot {
    background: repeating-linear-gradient(135deg, var(--hairline-dark), var(--hairline-dark) 2px, transparent 2px, transparent 14px);
    background-color: #E7E3DA;
    min-height: 520px;
    display: flex; align-items: center; justify-content: center;
    position: relative;
  }
#page-story .founder-photo-note {
    background: var(--ivory);
    border: 1px dashed var(--charcoal);
    padding: 18px 26px;
    text-align: center;
    max-width: 260px;
  }
#page-story .founder-photo-note .sans { font-size: 13px; color: var(--charcoal); line-height: 1.6; }
#page-story .founder-copy { padding: 90px 72px; display: flex; flex-direction: column; justify-content: center; }
#page-story .founder-copy .kicker.sans { color: var(--mahogany); }
#page-story .founder-copy h2 { font-size: 34px; margin: 0 0 22px; font-weight: 400; }
#page-story .founder-copy p { font-size: 17px; line-height: 1.75; color: var(--charcoal); margin: 0 0 20px; max-width: 520px; }
#page-story .founder-copy .signoff { font-style: italic; color: var(--ink); margin-top: 8px; }/* ---------- COMMUNITY BAND ---------- */
#page-story .community-band, #page-rentals .community-band, #page-category .community-band, #page-visit .community-band, #page-restoration .community-band, #page-grand .community-band , #page-events .community-band, #page-lessons .community-band, #page-storage .community-band { background: var(--mahogany); padding: 70px 56px; text-align: center; }

/* ---------- RESTORATION PAGE (matches grand / upright / digital pages) ---------- */
#page-restoration .restoration-accent { color: var(--gold-dim) !important; }
.re-hero {
  position: relative; overflow: hidden;
  background-image:
    linear-gradient(to right, rgba(26,26,26,0.06) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(26,26,26,0.06) 1px, transparent 1px);
  background-size: 56px 56px; background-position: -1px -1px;
  border-bottom: 1px solid var(--hairline-dark);
}
.re-hero > * { position: relative; z-index: 1; }
#page-restoration .re-hero h1 {
  font-family: Georgia, 'Times New Roman', serif; font-weight: 400;
  font-size: 58px; line-height: 1.06; letter-spacing: -0.025em;
  color: var(--ink); margin: 0 0 28px; max-width: 15ch;
}
#page-restoration .cat-btn {
  display: inline-flex; align-items: center; gap: 14px;
  background: var(--ink); color: var(--ivory);
  padding: 16px 18px 16px 28px; border-radius: 30px; font-size: 15px; letter-spacing: 0.01em;
  transition: background 0.2s ease;
}
#page-restoration .cat-btn:hover { background: #000; }
#page-restoration .cat-btn:hover .cat-btn-arrow svg { transform: translateX(2px); }
#page-restoration .cat-link { font-size: 15px; color: var(--ink); border-bottom: 1px solid var(--gold); padding-bottom: 3px; }
#page-restoration .cat-link:hover { color: var(--gold-dim); }
.re-note { font-family: Georgia, 'Times New Roman', serif; font-size: 14px; font-style: italic; line-height: 1.6; color: var(--charcoal); margin: 32px 0 0; max-width: 34em; }
/* stage behind the video; the band along the bottom is a row of tuning pins and strings */
.re-stage {
  position: relative; overflow: hidden;
  background-color: #EAE6DC;
  border-radius: 28px; padding: 44px 44px 68px;
}
.re-stage::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 24px;
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2218%22%20height%3D%2224%22%20viewBox%3D%220%200%2018%2024%22%3E%3Cg%20stroke%3D%22rgba%2826%2C26%2C26%2C0.32%29%22%20stroke-width%3D%220.8%22%3E%3Cline%20x1%3D%224.5%22%20y1%3D%228%22%20x2%3D%224.5%22%20y2%3D%2224%22%2F%3E%3Cline%20x1%3D%2213.5%22%20y1%3D%2214%22%20x2%3D%2213.5%22%20y2%3D%2224%22%2F%3E%3C%2Fg%3E%3Cg%20fill%3D%22rgba%28176%2C141%2C69%2C0.75%29%22%20stroke%3D%22rgba%2826%2C26%2C26%2C0.45%29%22%20stroke-width%3D%220.8%22%3E%3Ccircle%20cx%3D%224.5%22%20cy%3D%226%22%20r%3D%222.4%22%2F%3E%3Ccircle%20cx%3D%2213.5%22%20cy%3D%2212%22%20r%3D%222.4%22%2F%3E%3C%2Fg%3E%3Cg%20fill%3D%22rgba%2826%2C26%2C26%2C0.35%29%22%3E%3Ccircle%20cx%3D%224.5%22%20cy%3D%226%22%20r%3D%220.7%22%2F%3E%3Ccircle%20cx%3D%2213.5%22%20cy%3D%2212%22%20r%3D%220.7%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); background-size: 18px 24px; background-repeat: repeat-x;
  background-color: #F4F1EA; border-top: 1px solid var(--hairline-dark);
}
.re-video {
  position: relative; aspect-ratio: 4 / 3; border-radius: 18px; background: var(--ink);
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px;
  box-shadow: 0 18px 40px rgba(26,26,26,0.18);
}
.re-video-play {
  width: 64px; height: 64px; border-radius: 50%; background: var(--gold); border: none; cursor: pointer;
  display: flex; align-items: center; justify-content: center; transition: background 0.2s ease;
}
.re-video-play:hover { background: #c19d54; }
.re-video-play svg { width: 22px; height: 22px; color: var(--ink); margin-left: 3px; }
.re-video-label { font-family: Georgia, 'Times New Roman', serif; font-size: 13px; font-style: italic; color: rgba(242,240,236,0.75); }
.re-photo { margin: 0; overflow: hidden; }
.re-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 60% center; display: block; }
/* tuning-pin divider: pins and strings from a piano pin block */
.re-weave-rule {
  max-width: 1180px; height: 24px; margin: 96px auto 0;
  background-color: #F4F1EA;
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2218%22%20height%3D%2224%22%20viewBox%3D%220%200%2018%2024%22%3E%3Cg%20stroke%3D%22rgba%2826%2C26%2C26%2C0.32%29%22%20stroke-width%3D%220.8%22%3E%3Cline%20x1%3D%224.5%22%20y1%3D%228%22%20x2%3D%224.5%22%20y2%3D%2224%22%2F%3E%3Cline%20x1%3D%2213.5%22%20y1%3D%2214%22%20x2%3D%2213.5%22%20y2%3D%2224%22%2F%3E%3C%2Fg%3E%3Cg%20fill%3D%22rgba%28176%2C141%2C69%2C0.75%29%22%20stroke%3D%22rgba%2826%2C26%2C26%2C0.45%29%22%20stroke-width%3D%220.8%22%3E%3Ccircle%20cx%3D%224.5%22%20cy%3D%226%22%20r%3D%222.4%22%2F%3E%3Ccircle%20cx%3D%2213.5%22%20cy%3D%2212%22%20r%3D%222.4%22%2F%3E%3C%2Fg%3E%3Cg%20fill%3D%22rgba%2826%2C26%2C26%2C0.35%29%22%3E%3Ccircle%20cx%3D%224.5%22%20cy%3D%226%22%20r%3D%220.7%22%2F%3E%3Ccircle%20cx%3D%2213.5%22%20cy%3D%2212%22%20r%3D%220.7%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); background-size: 18px 24px; background-repeat: repeat-x;
  border-top: 1px solid var(--hairline-dark); border-bottom: 1px solid var(--hairline-dark);
}
.re-hero .re-weave-rule + .cat-facts { margin-top: 48px; }
.re-hero .cat-facts { gap: 18px; }
.re-hero .cat-fact { background: #FAF8F4; border: 1px solid var(--hairline-dark); border-radius: 16px; padding: 28px 24px; }
.re-fact-icon { width: 26px; height: 26px; stroke: var(--gold); margin-bottom: 16px; display: block; }
@media (max-width: 1080px) { #page-restoration .re-hero h1 { font-size: 46px; } }
@media (max-width: 860px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
  #page-restoration .re-hero h1 { font-size: 38px; }
  .re-stage { padding: 22px; border-radius: 22px; }
  .re-weave-rule { margin-top: 64px; }
}

.re-reveal { opacity: 0; transform: translateY(36px); transition: opacity 0.8s cubic-bezier(0.22,1,0.36,1), transform 0.8s cubic-bezier(0.22,1,0.36,1); }
.re-reveal.re-visible { opacity: 1; transform: translateY(0); }
#page-restoration header { position: relative; background: var(--ivory); border-bottom: 1px solid var(--hairline-dark); }
#page-category header, #page-grand header, #page-lessons header, #page-storage header { position: relative; background: var(--ivory); }
#page-restoration header .wordmark, #page-restoration nav.sans a, #page-restoration .theme-toggle svg,
#page-category header .wordmark, #page-category nav.sans a, #page-grand header .wordmark, #page-grand nav.sans a, #page-lessons header .wordmark, #page-lessons nav.sans a, #page-storage header .wordmark, #page-storage nav.sans a { color: var(--ink); }
#page-restoration header .wordmark span, #page-category header .wordmark span, #page-grand header .wordmark span, #page-lessons header .wordmark span, #page-storage header .wordmark span { color: var(--gold); }
#page-restoration .mobile-menu-toggle svg, #page-category .mobile-menu-toggle svg, #page-grand .mobile-menu-toggle svg, #page-lessons .mobile-menu-toggle svg, #page-storage .mobile-menu-toggle svg { stroke: var(--ink); }
#page-category .mobile-menu-toggle, #page-grand .mobile-menu-toggle, #page-lessons .mobile-menu-toggle, #page-storage .mobile-menu-toggle { border-color: rgba(26,26,26,0.3); }
.restoration-services-list { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 14px; margin: 8px auto 40px; max-width: 640px; }
.restoration-services-list span { font-size: 13px; letter-spacing: 0.02em; color: var(--charcoal); padding: 7px 16px; border: 1px solid var(--hairline-dark); border-radius: 20px; }
.restoration-form-card { max-width: 560px; text-align: left; max-height: 85vh; overflow-y: auto; }
.restoration-form-card h3 { text-align: center; }
.restoration-form-card .connect-sub { text-align: center; }
.restoration-form { display: flex; flex-direction: column; gap: 16px; margin-top: 24px; }
.restoration-form label { display: flex; flex-direction: column; gap: 6px; font-size: 13px; color: var(--charcoal); font-family: Georgia, 'Times New Roman', serif; }
.restoration-form input[type="text"], .restoration-form input[type="email"], .restoration-form input[type="tel"], .restoration-form select, .restoration-form textarea {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 15px; color: var(--ink);
  padding: 10px 12px;
  border: 1px solid var(--hairline-dark);
  border-radius: 8px;
  background: var(--ivory);
}
.restoration-form input[type="file"] { font-size: 13px; }
.restoration-form textarea { resize: vertical; }
.rf-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.rf-checkgroup { display: flex; flex-direction: column; gap: 8px; }
.rf-label { font-size: 13px; color: var(--charcoal); font-family: Georgia, 'Times New Roman', serif; margin-bottom: 2px; }
.rf-check { flex-direction: row !important; align-items: center; gap: 8px !important; font-size: 14px !important; }
.rf-check input { width: auto; }
.restoration-submit { background: var(--ink); color: var(--ivory) !important; margin-top: 8px; width: 100%; text-align: center; border: none; cursor: pointer; }
.restoration-form-success { text-align: center; padding: 20px 0; }
@media (max-width: 560px) {
  .rf-row { grid-template-columns: 1fr; }
}
.restoration-hero-photo { position: relative; height: 560px; overflow: hidden; background: var(--ink); }
.restoration-hero-photo img { width: 100%; height: 100%; object-fit: cover; display: block; filter: brightness(0.55); }
.restoration-hero-overlay { position: absolute; left: 56px; bottom: 64px; max-width: 640px; }
.restoration-hero-overlay h1 { color: var(--ivory); }
.restoration-process-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; margin-top: 48px; text-align: left; }
.restoration-process-item img { width: 100%; height: 140px; object-fit: cover; border-radius: 10px; margin-bottom: 18px; }
.restoration-process-num { font-family: Georgia, 'Times New Roman', serif; font-size: 26px; margin-bottom: 10px; }
.restoration-process-item h4 { font-family: Georgia, 'Times New Roman', serif; font-size: 17px; font-weight: 400; margin: 0 0 10px; color: var(--ink); }
.restoration-process-item p { font-size: 14px; line-height: 1.6; color: var(--charcoal); margin: 0; }
#page-restoration .restoration-why { padding: 0; background: rgba(26,26,26,0.04); }
.restoration-why-grid { display: grid; grid-template-columns: 0.85fr 1.15fr; align-items: center; }
.restoration-why-photo { height: 100%; min-height: 380px; }
.restoration-why-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.restoration-why-text { padding: 56px; text-align: left; }
.restoration-why-text .lede { margin: 0; max-width: 480px; }
@media (max-width: 900px) {
  .restoration-process-grid { grid-template-columns: 1fr 1fr; gap: 28px; }
  .restoration-why-grid { grid-template-columns: 1fr; }
  .restoration-why-photo { min-height: 260px; }
  .restoration-hero-photo { height: 420px; }
  .restoration-hero-overlay { left: 20px; right: 20px; bottom: 32px; }
}

#page-rentals .rentals-table-wrap { background: var(--ivory); padding: 0 56px 90px; }
#page-rentals .rentals-table {
  max-width: 1180px; margin: 0 auto;
  background: var(--ivory);
  border: 1px solid var(--hairline-dark);
  border-radius: 16px;
  overflow: hidden;
}
#page-rentals .rentals-row {
  display: grid;
  grid-template-columns: 2fr 1.4fr 1fr 1fr;
  align-items: center;
  padding: 18px 28px;
  border-bottom: 1px solid var(--hairline-dark);
}
#page-rentals .rentals-row:last-child { border-bottom: none; }
#page-rentals .rentals-head {
  background: transparent;
  padding: 14px 28px;
}
#page-rentals .rentals-head .rentals-cell {
  font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--charcoal);
}
#page-rentals .rentals-cell { font-size: 15px; color: var(--ink); }
#page-rentals .rentals-cell-name {
  display: flex; align-items: center; gap: 12px;
  font-weight: bold;
}
#page-rentals .rentals-tag {
  display: inline-block;
  font-size: 12px; font-weight: bold;
  padding: 5px 14px;
  border-radius: 20px;
}
#page-rentals .rentals-tag-short { background: var(--gold); color: var(--ink); }
#page-rentals .rentals-tag-long { background: var(--mahogany); color: var(--ivory); }
#page-rentals .rentals-note.sans { max-width: 1180px; margin: 24px auto 0; font-size: 13px; color: var(--charcoal); text-align: center; }

@media (max-width: 860px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
  #page-rentals .rentals-row { grid-template-columns: 1fr; gap: 6px; padding: 20px; }
  #page-rentals .rentals-head { display: none; }
}
#page-story .community-band .kicker.sans, #page-rentals .community-band .kicker.sans, #page-category .community-band .kicker.sans, #page-visit .community-band .kicker.sans, #page-restoration .community-band .kicker.sans, #page-grand .community-band .kicker.sans , #page-events .community-band .kicker.sans, #page-lessons .community-band .kicker.sans, #page-storage .community-band .kicker.sans { color: var(--gold); }
#page-story .community-band h2, #page-rentals .community-band h2, #page-category .community-band h2, #page-visit .community-band h2, #page-restoration .community-band h2, #page-grand .community-band h2 , #page-events .community-band h2, #page-lessons .community-band h2, #page-storage .community-band h2 { color: var(--ivory); font-size: 30px; margin: 0 0 18px; font-weight: 400; }
#page-story .community-band p, #page-rentals .community-band p, #page-category .community-band p, #page-visit .community-band p, #page-restoration .community-band p, #page-grand .community-band p , #page-events .community-band p, #page-lessons .community-band p, #page-storage .community-band p { color: rgba(242,240,236,0.82); font-size: 17px; line-height: 1.7; max-width: 640px; margin: 0 auto; }/* ---------- CTA ---------- */
#page-story .story-cta, #page-rentals .story-cta, #page-category .story-cta, #page-visit .story-cta, #page-restoration .story-cta, #page-grand .story-cta , #page-events .story-cta, #page-lessons .story-cta, #page-storage .story-cta { padding: 90px 56px; text-align: center; }
#page-grand .collections + .story-cta, #page-lessons .collections + .story-cta, #page-storage .collections + .story-cta { padding-top: 0; }
#page-story .story-cta h2, #page-rentals .story-cta h2, #page-category .story-cta h2, #page-visit .story-cta h2, #page-restoration .story-cta h2, #page-grand .story-cta h2 , #page-events .story-cta h2, #page-lessons .story-cta h2, #page-storage .story-cta h2 { font-size: 32px; margin: 0 0 30px; font-weight: 400; }
#page-story .btn-primary.sans, #page-rentals .btn-primary.sans, #page-category .btn-primary.sans, #page-visit .btn-primary.sans, #page-restoration .btn-primary.sans, #page-grand .btn-primary.sans , #page-events .btn-primary.sans, #page-lessons .btn-primary.sans, #page-storage .btn-primary.sans { display: inline-block; background: var(--gold); color: var(--ink); padding: 15px 32px; font-size: 14px; letter-spacing: 0.02em; border-radius: 28px; }/* ---------- FOOTER ---------- */
#page-story footer, #page-rentals footer, #page-category footer, #page-visit footer, #page-restoration footer, #page-grand footer , #page-events footer, #page-lessons footer, #page-storage footer { background: var(--ink); padding: 72px 56px 36px; }
#page-story .footer-top, #page-rentals .footer-top, #page-category .footer-top, #page-visit .footer-top, #page-restoration .footer-top, #page-grand .footer-top , #page-events .footer-top, #page-lessons .footer-top, #page-storage .footer-top { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 40px; padding-bottom: 40px; border-bottom: 1px solid var(--hairline); }
#page-story .footer-top .wordmark, #page-rentals .footer-top .wordmark, #page-category .footer-top .wordmark, #page-visit .footer-top .wordmark, #page-restoration .footer-top .wordmark, #page-grand .footer-top .wordmark , #page-events .footer-top .wordmark, #page-lessons .footer-top .wordmark, #page-storage .footer-top .wordmark { margin-bottom: 16px; }
#page-story .footer-top p.sans, #page-rentals .footer-top p.sans, #page-category .footer-top p.sans, #page-visit .footer-top p.sans, #page-restoration .footer-top p.sans, #page-grand .footer-top p.sans , #page-events .footer-top p.sans, #page-lessons .footer-top p.sans, #page-storage .footer-top p.sans { color: rgba(242,240,236,0.55); font-size: 14px; line-height: 1.6; max-width: 280px; }
#page-story .footer-col .col-title.sans, #page-rentals .footer-col .col-title.sans, #page-category .footer-col .col-title.sans, #page-visit .footer-col .col-title.sans, #page-restoration .footer-col .col-title.sans, #page-grand .footer-col .col-title.sans , #page-events .footer-col .col-title.sans, #page-lessons .footer-col .col-title.sans, #page-storage .footer-col .col-title.sans { font-size: 12px; letter-spacing: 0.08em; color: var(--gold); margin-bottom: 18px; }
#page-story .footer-col a.sans, #page-rentals .footer-col a.sans, #page-category .footer-col a.sans, #page-visit .footer-col a.sans, #page-restoration .footer-col a.sans, #page-grand .footer-col a.sans , #page-events .footer-col a.sans, #page-lessons .footer-col a.sans, #page-storage .footer-col a.sans { display: block; font-size: 14px; color: rgba(242,240,236,0.7); margin-bottom: 12px; }
#page-story .footer-bottom, #page-rentals .footer-bottom, #page-category .footer-bottom, #page-visit .footer-bottom, #page-restoration .footer-bottom, #page-grand .footer-bottom , #page-events .footer-bottom, #page-lessons .footer-bottom, #page-storage .footer-bottom { display: flex; justify-content: space-between; padding-top: 28px; }
#page-story .footer-bottom span.sans, #page-rentals .footer-bottom span.sans, #page-category .footer-bottom span.sans, #page-visit .footer-bottom span.sans, #page-restoration .footer-bottom span.sans, #page-grand .footer-bottom span.sans , #page-events .footer-bottom span.sans, #page-lessons .footer-bottom span.sans, #page-storage .footer-bottom span.sans { font-size: 12px; color: rgba(242,240,236,0.4); }

  @media (max-width: 860px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
#page-story header, #page-rentals header, #page-category header, #page-visit header, #page-restoration header, #page-grand header , #page-events header, #page-lessons header, #page-storage header { padding: 16px 16px; }
#page-story nav.sans, #page-rentals nav.sans, #page-category nav.sans, #page-visit nav.sans, #page-restoration nav.sans, #page-grand nav.sans , #page-events nav.sans, #page-lessons nav.sans, #page-storage nav.sans { display: none; }
#page-story .mobile-menu-toggle, #page-rentals .mobile-menu-toggle, #page-category .mobile-menu-toggle, #page-visit .mobile-menu-toggle, #page-restoration .mobile-menu-toggle, #page-grand .mobile-menu-toggle , #page-events .mobile-menu-toggle, #page-lessons .mobile-menu-toggle, #page-storage .mobile-menu-toggle { display: flex; }
#page-story .story-hero-content, #page-rentals .story-hero-content, #page-category .story-hero-content, #page-visit .story-hero-content, #page-restoration .story-hero-content, #page-grand .story-hero-content , #page-events .story-hero-content, #page-lessons .story-hero-content, #page-storage .story-hero-content { padding: 0 24px 48px; }
#page-story .story-hero h1, #page-rentals .story-hero h1, #page-category .story-hero h1, #page-visit .story-hero h1, #page-restoration .story-hero h1, #page-grand .story-hero h1 , #page-events .story-hero h1, #page-lessons .story-hero h1, #page-storage .story-hero h1 { font-size: 34px; }
#page-story .section, #page-rentals .section, #page-category .section, #page-visit .section, #page-restoration .section, #page-grand .section , #page-events .section, #page-lessons .section, #page-storage .section { padding: 60px 24px; }
#page-story .timeline { padding: 60px 24px; }
#page-story .timeline-row { grid-template-columns: 1fr; gap: 8px; }
#page-story .founder-split { grid-template-columns: 1fr; }
#page-story .founder-photo-slot { min-height: 320px; }
#page-story .founder-copy { padding: 48px 24px; }
#page-story .footer-top, #page-rentals .footer-top, #page-category .footer-top, #page-visit .footer-top, #page-restoration .footer-top, #page-grand .footer-top , #page-events .footer-top, #page-lessons .footer-top, #page-storage .footer-top { grid-template-columns: 1fr; }
  }


#page-story { display: none; }

/* Two-level header: brand worlds above the compact action row. */
header, #page-story header, #page-rentals header, #page-category header,
#page-visit header, #page-restoration header, #page-grand header, #page-events header, #page-lessons header, #page-storage header {
  flex-wrap: wrap;
  row-gap: 18px;
  padding-top: 18px;
}
header .brand-worlds {
  flex: 0 0 100%;
  display: flex;
  gap: 30px;
  align-items: center;
  padding-bottom: 13px;
  border-bottom: 1px solid rgba(242,240,236,.28);
  color: var(--ivory);
  font-size: 12px;
  letter-spacing: .045em;
}
header .brand-worlds a, header .header-links a { white-space: nowrap; opacity: .85; }
header .brand-worlds a:hover, header .header-links a:hover { color: var(--gold); opacity: 1; }
header .header-left { margin-right: 20px; gap: 18px; }
header .header-right { margin-left: 20px; }
header .header-links { gap: 22px !important; }
#page-category header .brand-worlds, #page-grand header .brand-worlds, #page-lessons header .brand-worlds, #page-storage header .brand-worlds,
#page-restoration header .brand-worlds { color: var(--ink); border-bottom-color: rgba(26,26,26,.2); }
@media (max-width: 1180px) {
  header .brand-worlds { gap: 22px; }
  header .header-links { gap: 16px !important; }
}
@media (max-width: 860px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
  header, #page-story header, #page-rentals header, #page-category header,
  #page-visit header, #page-restoration header, #page-grand header, #page-events header, #page-lessons header, #page-storage header {
    padding: 16px;
    row-gap: 0;
  }
  header .brand-worlds, header .header-links { display: none !important; }
  header .header-left { margin-right: 0; }
  header .header-right { margin-left: 8px; }
}

/* Gray first level gives way to the pinned black navigation as the page scrolls. */
header, #page-story header, #page-rentals header, #page-category header,
#page-visit header, #page-restoration header, #page-grand header, #page-events header, #page-lessons header, #page-storage header {
  position: sticky;
  top: -36px;
  z-index: 100;
  display: block;
  padding: 0;
  background: #d5d3cf;
}
header .brand-worlds {
  display: flex;
  height: 36px;
  padding: 0 max(32px, calc((100vw - 1180px) / 2));
  border: 0;
  color: #292827;
}
header .brand-worlds a:hover { color: #6e522b; }
header .brand-worlds { font-size: 11px; font-weight: 400; gap: 26px; }
header .header-main {
  min-height: 78px;
  display: flex;
  align-items: center;
  gap: 0;
  padding: 16px max(32px, calc((100vw - 1180px) / 2));
  background: #191919;
  color: var(--ivory);
  box-shadow: 0 1px 0 rgba(255,255,255,.12);
}
header .header-main .wordmark, header .header-main .header-links,
#page-category header .header-main .wordmark, #page-grand header .header-main .wordmark, #page-lessons header .header-main .wordmark, #page-storage header .header-main .wordmark,
#page-restoration header .header-main .wordmark { color: var(--ivory); }
header .header-main .browse-toggle,
#page-category header .header-main .browse-toggle, #page-grand header .header-main .browse-toggle, #page-lessons header .header-main .browse-toggle, #page-storage header .header-main .browse-toggle,
#page-restoration header .header-main .browse-toggle { color: var(--ivory); border-color: rgba(242,240,236,.4); }
header .header-main .header-search,
#page-category header .header-main .header-search, #page-grand header .header-main .header-search, #page-lessons header .header-main .header-search, #page-storage header .header-main .header-search,
#page-restoration header .header-main .header-search { background: rgba(242,240,236,.1); border-color: rgba(242,240,236,.25); }
header .header-main .header-search svg,
#page-category header .header-main .header-search svg, #page-grand header .header-main .header-search svg, #page-lessons header .header-main .header-search svg, #page-storage header .header-main .header-search svg,
#page-restoration header .header-main .header-search svg { stroke: var(--ivory); }
header .header-main .header-search input,
#page-category header .header-main .header-search input, #page-grand header .header-main .header-search input, #page-lessons header .header-main .header-search input, #page-storage header .header-main .header-search input,
#page-restoration header .header-main .header-search input { color: var(--ivory); }
header .header-main .header-search input::placeholder,
#page-category header .header-main .header-search input::placeholder,
#page-grand header .header-main .header-search input::placeholder, #page-lessons header .header-main .header-search input::placeholder, #page-storage header .header-main .header-search input::placeholder,
#page-restoration header .header-main .header-search input::placeholder { color: rgba(242,240,236,.6); }
header .mobile-nav-panel { top: 100%; }
#music-education { scroll-margin-top: 90px; }
@media (max-width: 1180px) {
  header .header-main { padding-left: 28px; padding-right: 28px; }
  header .brand-worlds { padding-left: 28px; padding-right: 28px; }
}
@media (max-width: 860px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
  header, #page-story header, #page-rentals header, #page-category header,
  #page-visit header, #page-restoration header, #page-grand header, #page-events header, #page-lessons header, #page-storage header { top: 0; padding: 0; }
  header .brand-worlds { display: none; }
  header .header-main { min-height: 72px; padding: 16px; }
  header .header-main .mobile-menu-toggle svg { stroke: var(--ivory); }
}

/* Hand off the home header without changing document height. */
#page-home header .header-main {
  transform: translateY(0);
  opacity: 1;
  transition: transform .3s cubic-bezier(.22, 1, .36, 1), opacity .2s ease;
  will-change: transform, opacity;
}
#page-home header.home-header-collapsed {
  background: transparent;
  pointer-events: none;
}
#page-home header.home-header-collapsed .header-main {
  transform: translateY(-100%);
  opacity: 0;
  visibility: hidden;
  transition: transform .3s cubic-bezier(.22, 1, .36, 1), opacity .2s ease, visibility 0s linear .3s;
}
@media (prefers-reduced-motion: reduce) {
  #page-home header .header-main,
  #page-home header.home-header-collapsed .header-main { transition: none; }
}

/* Keep the upper navigation identical across the site's page views. */
#page-home header .brand-worlds,
#page-story header .brand-worlds,
#page-rentals header .brand-worlds,
#page-category header .brand-worlds,
#page-visit header .brand-worlds,
#page-restoration header .brand-worlds,
#page-grand header .brand-worlds, #page-lessons header .brand-worlds, #page-storage header .brand-worlds,
#page-events header .brand-worlds {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: 11px;
  font-weight: 400;
  letter-spacing: .045em;
  color: #292827;
  gap: 26px;
  border: 0;
}
#page-home header .brand-worlds a,
#page-story header .brand-worlds a,
#page-rentals header .brand-worlds a,
#page-category header .brand-worlds a,
#page-visit header .brand-worlds a,
#page-restoration header .brand-worlds a,
#page-grand header .brand-worlds a, #page-lessons header .brand-worlds a, #page-storage header .brand-worlds a,
#page-events header .brand-worlds a { color: inherit; }
@media (max-width: 860px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
  #page-home header .brand-worlds,
  #page-story header .brand-worlds,
  #page-rentals header .brand-worlds,
  #page-category header .brand-worlds,
  #page-visit header .brand-worlds,
  #page-restoration header .brand-worlds,
  #page-grand header .brand-worlds, #page-lessons header .brand-worlds, #page-storage header .brand-worlds,
  #page-events header .brand-worlds { display: none; }
}

/* Financing page follows the collection page's ivory, charcoal, and gold language. */
#page-financing .cat-hero h1 { font-size: 58px; line-height: 1.06; font-weight: 400; letter-spacing: -.025em; color: var(--ink); margin: 0 0 28px; max-width: 15ch; }
#page-financing .cat-btn { display: inline-flex; align-items: center; gap: 14px; background: var(--ink); color: var(--ivory); padding: 16px 18px 16px 28px; border-radius: 30px; font-size: 15px; }
#page-financing .cat-btn:hover { background: #000; }
#page-financing .cat-link { font-size: 15px; color: var(--ink); border-bottom: 1px solid var(--gold); padding-bottom: 3px; }
#page-financing .cat-media img { object-position: center; }
/* Financing promo graphic: square, sized to match the height of the 4:3 photos on the collection pages */
#page-financing .cat-media { width: 100%; max-width: 390px; justify-self: end; }
@media (max-width: 860px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) { #page-financing .cat-media { justify-self: start; } }
#page-financing .fn-wrap { max-width: 1180px; margin: 0 auto; }
#page-financing .fn-eyebrow { font-size: 12px; letter-spacing: .12em; color: var(--mahogany); margin-bottom: 18px; }
#page-financing .fn-process { background: var(--ivory); padding: 20px 56px 120px; }
#page-financing .fn-process h2, #page-financing .fn-questions h2, #page-financing .fn-faq-section h2, #page-financing .fn-close h2 { font-size: clamp(34px, 4vw, 48px); font-weight: 400; letter-spacing: -.025em; line-height: 1.14; margin: 0; }
#page-financing .fn-steps { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; margin-top: 48px; }
#page-financing .fn-steps article { background: #faf8f4; border-radius: 16px; padding: 36px; min-height: 270px; }
#page-financing .fn-num { color: var(--mahogany); font-size: 13px; letter-spacing: .1em; }
#page-financing .fn-steps h3 { font-size: 26px; font-weight: 400; margin: 38px 0 12px; }
#page-financing .fn-steps p, #page-financing .fn-questions p, #page-financing .fn-close p { color: var(--charcoal); font-size: 17px; line-height: 1.65; margin: 0; }
#page-financing .fn-questions { background: #e9e6df; padding: 110px 56px; }
#page-financing .fn-questions-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 90px; }
#page-financing .fn-questions p { margin-top: 24px; max-width: 32ch; }
#page-financing .fn-questions ul { list-style: none; padding: 0; margin: 0; border-top: 1px solid rgba(26,26,26,.22); }
#page-financing .fn-questions li { display: flex; gap: 26px; align-items: baseline; padding: 20px 0; border-bottom: 1px solid rgba(26,26,26,.22); font-size: 18px; line-height: 1.4; }
#page-financing .fn-questions li span { color: var(--mahogany); font-size: 13px; }
#page-financing .fn-faq-section { background: var(--ink); color: var(--ivory); padding: 110px 56px 120px; }
#page-financing .fn-faq-section .fn-eyebrow { color: var(--gold); }
#page-financing .fn-faq-section h2 { max-width: 18ch; margin-bottom: 48px; }
#page-financing .fn-close { background: var(--ivory); text-align: center; padding: 110px 56px 120px; }
#page-financing .fn-close h2 { max-width: 19ch; margin: 0 auto 18px; }
#page-financing .fn-close p { margin: 0 auto 32px; }
#page-financing .fn-close .cat-actions { justify-content: center; }
#page-financing header .brand-worlds { font-size: 11px; font-weight: 400; letter-spacing: .045em; color: #292827; gap: 26px; border: 0; }
#page-financing header .brand-worlds a { color: inherit; }
@media (max-width: 1080px) { #page-financing .cat-hero h1 { font-size: 46px; } }
@media (max-width: 860px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
  #page-financing header .brand-worlds { display: none; }
  #page-financing .cat-hero h1 { font-size: 38px; }
  #page-financing .fn-process, #page-financing .fn-questions, #page-financing .fn-faq-section, #page-financing .fn-close { padding: 72px 24px; }
  #page-financing .fn-steps, #page-financing .fn-questions-grid { grid-template-columns: 1fr; gap: 18px; }
  #page-financing .fn-steps article { min-height: 0; }
}

/* Main actions use restrained, soft-rectangle corners. */
header .header-main .browse-toggle,
header .header-main .header-search,
header .header-main .header-cta,
.btn-primary, .btn-ghost, .btn-ghost-dark, .btn-outline-ink,
.cat-btn, .gd-outline-btn, .gd-light-btn, .offer-btn,
.browse-all, .connect-option, .modal-cta,
.trend-card .cta, .modal-badge, .gd-pill, .gd-soon,
#page-rentals .rentals-tag, .restoration-services-list span {
  border-radius: 12px !important;
}

.footer-location-label.sans { color: var(--gold); font-size: 11px; letter-spacing: .08em; margin: 18px 0 8px; }
.footer-location-label.sans:first-of-type { margin-top: 0; }

  .ls-teacher-photo img[src*="veselin"] { object-position: center; }
  .ls-teacher-town { display: flex; align-items: center; gap: 6px; font-size: 14px; color: var(--charcoal); margin-bottom: 10px; }
  .ls-teacher-town svg, .ls-teacher-phone svg { width: 15px; height: 15px; stroke: currentColor; flex-shrink: 0; }
  .ls-teacher-meta li { position: relative; padding-left: 14px; margin-bottom: 6px; }
  .ls-teacher-meta li::before { content: ""; position: absolute; left: 0; top: 0.72em; width: 5px; height: 5px; border-radius: 50%; background: var(--gold); }
  .ls-teacher-actions { margin-top: auto; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; }
  #page-lessons .ls-teacher-phone { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; color: var(--ink); border-bottom: 1px solid var(--gold); padding-bottom: 2px; }
  #page-lessons .ls-teacher-phone:hover { color: var(--gold-dim); }
  .ls-directory { max-width: 1180px; margin: 36px auto 0; text-align: center; }
  #page-lessons .ls-directory a { font-family: Georgia, 'Times New Roman', serif; font-size: 16px; color: var(--ink); border-bottom: 1px solid var(--gold); padding-bottom: 3px; }
  #page-lessons .ls-directory a:hover { color: var(--gold-dim); }
  /* ---------- LESSONS PAGE ---------- */
  .edu-more { color: var(--gold-dim); border-bottom: 1px solid var(--gold); white-space: nowrap; }
  .ls-teacher-grid { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
  .ls-teacher { background: #FAF8F4; border-radius: 16px; overflow: hidden; display: flex; flex-direction: column; }
  .ls-teacher-photo { aspect-ratio: 4 / 5; background: var(--ink); overflow: hidden; }
  .ls-teacher-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 48% center; display: block; transition: transform 700ms var(--ease); }
  .ls-teacher:hover .ls-teacher-photo img { transform: scale(1.03); }
  .ls-photo-soon { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; background: radial-gradient(ellipse at 70% 30%, #3a332a 0%, var(--ink) 70%); }
  .ls-photo-soon span { font-family: Georgia, 'Times New Roman', serif; font-size: 13px; color: rgba(242,240,236,0.6); border: 1px solid rgba(242,240,236,0.3); border-radius: 20px; padding: 6px 14px; }
  .ls-teacher-body { padding: 24px 22px 24px; display: flex; flex-direction: column; flex: 1; }
  .ls-teacher-body h3 { font-family: Georgia, 'Times New Roman', serif; font-size: 21px; font-weight: 400; color: var(--ink); margin: 0 0 6px; }
  .ls-teacher-spec { font-family: Georgia, 'Times New Roman', serif; font-size: 14px; color: var(--gold-dim); padding-bottom: 16px; margin-bottom: 16px; border-bottom: 1px dotted rgba(26,26,26,0.35); }
  .ls-teacher-meta { list-style: none; margin: 0 0 24px; padding: 0; }
  .ls-teacher-meta li { font-family: Georgia, 'Times New Roman', serif; font-size: 14px; line-height: 1.6; color: var(--charcoal); }
  .ls-teacher-join { background: #E7E3DA; }
  .ls-join-inner { padding: 32px 26px; display: flex; flex-direction: column; height: 100%; box-sizing: border-box; }
  .ls-join-inner .gd-pill { align-self: flex-start; margin-bottom: 20px; }
  .ls-join-inner h3 { font-family: Georgia, 'Times New Roman', serif; font-size: 26px; font-weight: 400; line-height: 1.2; color: var(--ink); margin: 0 0 14px; }
  .ls-join-inner p { font-family: Georgia, 'Times New Roman', serif; font-size: 15px; line-height: 1.65; color: var(--charcoal); margin: 0 0 24px; }
  .ls-join-inner .gd-outline-btn { margin-top: auto; align-self: flex-start; font-size: 14px; color: var(--ink); border: 1.5px solid var(--ink); border-radius: 24px; padding: 9px 16px; }
  .ls-join-inner .gd-outline-btn:hover { background: var(--ink); color: var(--ivory); }
  .ls-network { max-width: 1180px; margin: 0 auto 130px; display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 80px; align-items: start; }
  .ls-network-copy .gd-pill { margin-bottom: 24px; }
  #page-lessons .ls-network-copy h2 { font-family: Georgia, 'Times New Roman', serif; font-size: 44px; font-weight: 400; letter-spacing: -0.02em; line-height: 1.1; color: var(--ivory); margin: 0 0 24px; }
  .ls-network-copy p { font-family: Georgia, 'Times New Roman', serif; font-size: 18px; line-height: 1.7; color: rgba(242,240,236,0.75); margin: 0 0 36px; max-width: 32em; }
  #page-lessons .ls-btn-gold { background: var(--gold); color: var(--ink); }
  #page-lessons .ls-btn-gold:hover { background: #C9A45A; }
  #page-lessons .ls-btn-gold .cat-btn-arrow { background: var(--ink); }
  #page-lessons .ls-btn-gold .cat-btn-arrow svg { stroke: var(--gold); }
  .ls-network-list { list-style: none; margin: 0; padding: 0; border-top: 1px dotted rgba(242,240,236,0.3); }
  .ls-network-list li { padding: 26px 0; border-bottom: 1px dotted rgba(242,240,236,0.3); }
  .ls-network-list h3 { font-family: Georgia, 'Times New Roman', serif; font-size: 20px; font-weight: 400; color: var(--gold); margin: 0 0 8px; }
  .ls-network-list p { font-family: Georgia, 'Times New Roman', serif; font-size: 16px; line-height: 1.65; color: rgba(242,240,236,0.75); margin: 0; }
  @media (max-width: 1080px) {
    .ls-teacher-grid { grid-template-columns: repeat(2, 1fr); }
    .ls-network { grid-template-columns: 1fr; gap: 48px; }
  }
  @media (max-width: 860px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
    .ls-teacher-grid { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 14px; margin: 0 -24px; padding: 0 24px 8px; }
    .ls-teacher { flex: 0 0 78%; scroll-snap-align: start; }
    #page-lessons .ls-network-copy h2 { font-size: 32px; }
    .ls-network { margin-bottom: 80px; }
  }
  @media (prefers-reduced-motion: reduce) { .ls-teacher:hover .ls-teacher-photo img { transform: none; } }
  /* Teacher cards: tighter spacing */
  .ls-teacher-body { padding: 20px 20px 22px; }
  .ls-teacher-body h3 { font-size: 20px; margin: 0 0 4px; }
  .ls-teacher-town { font-size: 13px; margin-bottom: 8px; }
  .ls-teacher-spec { font-size: 13.5px; line-height: 1.45; padding-bottom: 12px; margin-bottom: 12px; }
  .ls-teacher-meta { margin: 0 0 18px; }
  .ls-teacher-meta li { font-size: 13.5px; line-height: 1.45; margin-bottom: 4px; }
  .ls-teacher-meta li::before { top: 0.62em; }
  .ls-teacher-actions { gap: 10px 14px; }
  #page-lessons .ls-teacher-actions .gd-outline-btn { font-size: 13px; padding: 8px 14px; }
  #page-lessons .ls-teacher-phone { font-size: 13px; }


  /* ---------- STORAGE PAGE ---------- */
  .st-use-grid { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
  .st-use { background: #FAF8F4; border-radius: 16px; padding: 30px 26px; border-top: 3px solid var(--gold); }
  .st-use h3 { font-family: Georgia, 'Times New Roman', serif; font-size: 20px; font-weight: 400; color: var(--ink); margin: 0 0 12px; }
  .st-use p { font-family: Georgia, 'Times New Roman', serif; font-size: 15px; line-height: 1.65; color: var(--charcoal); margin: 0; }
  .st-mark svg { width: 30px; height: 30px; stroke: var(--ink); }
  @media (max-width: 1080px) { .st-use-grid { grid-template-columns: repeat(2, 1fr); } }
  @media (max-width: 560px) { .st-use-grid { grid-template-columns: 1fr; } }

  /* ---------- LESSON PROGRAM SECTIONS ---------- */
  .ls-program { scroll-margin-top: 130px; }
  .ls-program-inner { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 72px; align-items: center; }
  .ls-program-inner.ls-reverse .ls-program-photo { order: 2; }
  .ls-program-photo { margin: 0; border-radius: 18px; overflow: hidden; aspect-ratio: 4 / 5; background: var(--ink); }
  .ls-program-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
  .ls-program-copy .gd-pill { margin-bottom: 22px; }
  #page-lessons .ls-program-copy h2 { font-family: Georgia, 'Times New Roman', serif; font-weight: 400; font-size: 44px; line-height: 1.1; letter-spacing: -0.02em; color: var(--ink); margin: 0 0 24px; }
  .ls-program-copy > p { font-family: Georgia, 'Times New Roman', serif; font-size: 17px; line-height: 1.7; color: var(--ink); margin: 0 0 16px; max-width: 32em; }
  .ls-program-copy .cat-actions { margin-top: 32px; }
  .ls-program-list { list-style: none; margin: 8px 0 0; padding: 0; }
  .ls-program-list li { position: relative; padding: 0 0 0 18px; margin-bottom: 10px; font-family: Georgia, 'Times New Roman', serif; font-size: 15.5px; line-height: 1.55; color: var(--charcoal); }
  .ls-program-list li::before { content: ""; position: absolute; left: 0; top: 0.62em; width: 6px; height: 6px; border-radius: 50%; background: var(--gold); }
  .ls-program-list strong, .ny-block strong { color: var(--ink); font-weight: bold; }
  .ls-qa { margin: 8px 0 0; max-width: 34em; }
  .ls-qa dt { font-family: Georgia, 'Times New Roman', serif; font-size: 17px; color: var(--ink); padding-top: 16px; border-top: 1px dotted rgba(26,26,26,0.3); }
  .ls-qa dt:first-child { border-top: none; padding-top: 4px; }
  .ls-qa dd { font-family: Georgia, 'Times New Roman', serif; font-size: 15.5px; line-height: 1.6; color: var(--charcoal); margin: 6px 0 16px; }
  .ny-grid { max-width: 1180px; margin: 64px auto 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
  .ny-block { background: #FAF8F4; border-radius: 16px; padding: 28px 24px; border-top: 3px solid var(--gold); }
  .ny-block h3 { font-family: Georgia, 'Times New Roman', serif; font-size: 19px; font-weight: 400; color: var(--ink); margin: 0 0 16px; }
  .ny-block p { font-family: Georgia, 'Times New Roman', serif; font-size: 15px; line-height: 1.6; color: var(--charcoal); margin: 0 0 10px; }
  .ny-note { font-style: italic; margin-top: 12px !important; }
  .ny-levels { display: flex; gap: 6px; margin: 0 0 18px; }
  .ny-levels span { flex: 1; aspect-ratio: 1; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-family: Georgia, 'Times New Roman', serif; font-size: 16px; color: var(--ink); background: #EFEBE3; }
  .ny-levels span.ny-hi { background: var(--gold); }
  .ny-fine { max-width: 1180px; margin: 22px auto 0; font-family: Georgia, 'Times New Roman', serif; font-size: 14px; font-style: italic; line-height: 1.6; color: var(--charcoal); }
  .ny-teachers { max-width: 1180px; margin: 56px auto 0; background: #E7E3DA; border-radius: 22px; padding: 36px 40px; }
  .ny-teachers > h3 { font-family: Georgia, 'Times New Roman', serif; font-size: 22px; font-weight: 400; color: var(--ink); margin: 0 0 22px; }
  .ny-teacher-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
  .ny-teacher { display: flex; align-items: center; gap: 18px; background: #FAF8F4; border-radius: 16px; padding: 16px 20px 16px 16px; }
  .ny-teacher img { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
  .ny-teacher h4 { font-family: Georgia, 'Times New Roman', serif; font-size: 18px; font-weight: 400; color: var(--ink); margin: 0 0 4px; }
  .ny-teacher p { font-family: Georgia, 'Times New Roman', serif; font-size: 13.5px; line-height: 1.5; color: var(--charcoal); margin: 0; }
  .ny-teacher > div { flex: 1; }
  #page-lessons .ny-teacher .gd-outline-btn { font-size: 13px; padding: 8px 14px; flex-shrink: 0; }
  @media (max-width: 1080px) {
    .ls-program-inner { grid-template-columns: 1fr 1fr; gap: 48px; }
    .ny-grid { grid-template-columns: repeat(2, 1fr); }
    .ny-teacher-row { grid-template-columns: 1fr; }
  }
  @media (max-width: 860px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
    .ls-program-inner { grid-template-columns: 1fr; }
    .ls-program-inner.ls-reverse .ls-program-photo { order: 0; }
    .ls-program-photo { aspect-ratio: 4 / 3; }
    #page-lessons .ls-program-copy h2 { font-size: 32px; }
    .ny-grid { grid-template-columns: 1fr; margin-top: 40px; }
    .ny-teachers { padding: 24px 18px; }
    .ny-teacher { flex-wrap: wrap; }
  }

  /* ---------- PROGRAM ACCORDION ---------- */
  .pa-list { max-width: 1180px; margin: 0 auto; display: flex; flex-direction: column; gap: 12px; }
  .pa-item { background: #FAF8F4; border-radius: 18px; scroll-margin-top: 130px; }
  .pa-head { width: 100%; display: flex; align-items: center; gap: 22px; padding: 16px 22px 16px 16px; background: none; border: none; cursor: pointer; text-align: left; border-radius: 18px; }
  .pa-head:hover { background: rgba(26,26,26,0.025); }
  .pa-head img { width: 88px; height: 88px; border-radius: 12px; object-fit: cover; flex-shrink: 0; }
  .pa-text { flex: 1; display: flex; flex-direction: column; gap: 4px; }
  .pa-title { font-family: Georgia, 'Times New Roman', serif; font-size: 24px; color: var(--ink); }
  .pa-sub { font-size: 15px; line-height: 1.5; color: var(--charcoal); }
  .pa-head .faq-icon { transition: transform var(--t-med) var(--ease); }
  .pa-head[aria-expanded="true"] .faq-icon { transform: rotate(45deg); }
  .pa-body { overflow: hidden; padding: 12px 32px 40px; }
  .pa-body .ls-program-photo { aspect-ratio: 4 / 3; }
  .pa-body .ls-program-inner { gap: 56px; }
  #page-lessons .pa-body .ls-program-copy h2 { font-size: 36px; }
  .pa-body .ny-grid { margin-top: 44px; }
  .pa-body .ny-block { background: #fff; }
  .pa-body .ny-teachers { margin-top: 36px; }
  @media (max-width: 860px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
    .pa-head { gap: 14px; padding: 12px 14px 12px 12px; }
    .pa-head img { width: 64px; height: 64px; }
    .pa-title { font-size: 19px; }
    .pa-sub { font-size: 13.5px; }
    .pa-body { padding: 8px 16px 28px; }
  }

/* Restoration assurance cards: restrained hover, keyboard and touch feedback. */
.re-assurance-card { position: relative; overflow: hidden; transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease; }
.re-assurance-card::before { content: ""; position: absolute; top: 0; left: 24px; right: 24px; height: 3px; background: var(--gold); transform: scaleX(0); transform-origin: center; transition: transform .28s ease; }
.re-assurance-card .re-fact-icon { transition: transform .25s ease; }
.re-assurance-card:focus-visible, .re-assurance-card.is-engaged { border-color: var(--ink); outline: none; box-shadow: 0 8px 22px rgba(0,0,0,.06); }
.re-assurance-card:focus-visible::before, .re-assurance-card.is-engaged::before { transform: scaleX(1); }
.re-assurance-card:focus-visible .re-fact-icon, .re-assurance-card.is-engaged .re-fact-icon { transform: translateY(-2px); }
@media (hover: hover) and (pointer: fine) {
 .re-assurance-card:hover { border-color: var(--ink); transform: translateY(-3px); box-shadow: 0 8px 22px rgba(0,0,0,.06); }
 .re-assurance-card:hover::before { transform: scaleX(1); }
 .re-assurance-card:hover .re-fact-icon { transform: translateY(-2px); }
}
@media (prefers-reduced-motion: reduce) { .re-assurance-card, .re-assurance-card::before, .re-assurance-card .re-fact-icon { transition: none; transform: none; } }

#page-restoration .re-photo-interactive { position: relative; }
#page-restoration .re-photo-interactive::after { content: ""; position: absolute; inset: 0; border: 1px solid transparent; border-radius: inherit; pointer-events: none; transition: border-color .3s ease; }
#page-restoration .re-photo-interactive img { transition: transform .65s cubic-bezier(.2,.65,.3,1); }
@media (hover: hover) and (pointer: fine) {
 #page-restoration .re-photo-interactive:hover img { transform: scale(1.025); }
 #page-restoration .re-photo-interactive:hover::after { border-color: var(--gold); }
}
#page-restoration .re-photo-interactive:active::after { border-color: var(--gold); }
@media (prefers-reduced-motion: reduce) { #page-restoration .re-photo-interactive img, #page-restoration .re-photo-interactive::after { transition: none; } #page-restoration .re-photo-interactive:hover img { transform: none; } }

body .home-collection-cta.btn-primary.sans { background: #fff; color: #1e1e1e; border: 1px solid #fff; }
body .home-collection-cta.btn-primary.sans:hover { background: #f2f0ec; color: #1e1e1e; border-color: #f2f0ec; }
body .home-financing-cta.btn-ghost.sans { background: transparent; color: #fff; border-color: rgba(255,255,255,.72); }
body .home-financing-cta.btn-ghost.sans:hover { background: rgba(255,255,255,.1); border-color: #fff; color: #fff; }
body .home-collection-cta:focus-visible, body .home-financing-cta:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }

.tn-dialog { width:min(1080px,calc(100% - 32px)); max-height:calc(100dvh - 32px); padding:0; border:1px solid #454545; border-radius:18px; background:#1e1e1e; color:#fff; }
.tn-dialog::backdrop { background:rgba(0,0,0,.68); }
.tn-shell { position:relative; padding:56px; }
.tn-close { position:absolute; right:18px; top:16px; width:44px; height:44px; border:1px solid #777; border-radius:50%; background:transparent; color:white; font-size:26px; cursor:pointer; }
.tn-slide { display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center; animation:tn-enter .35s ease both; }
.tn-slide[hidden] { display:none; }
.tn-slide img { width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:12px; }
.tn-kicker { color:#d8b86d; font-size:12px; letter-spacing:.12em; text-transform:uppercase; margin:0 0 20px; }
.tn-slide h2 { color:#fff; font:400 36px/1.15 Georgia,serif; margin:0 0 24px; }
.tn-slide p { color:#e0ded9; font:18px/1.65 Georgia,serif; margin:0; }
.tn-controls { margin:32px 0 0; display:flex; align-items:center; gap:12px; justify-content:flex-end; }
.tn-controls button,.tn-join { min-height:44px; padding:12px 24px; border-radius:6px; cursor:pointer; font-size:14px; }
.tn-next,.tn-join { background:#fff; color:#1e1e1e; border:1px solid #fff; text-decoration:none; }
.tn-back { background:transparent; color:white; border:1px solid #777; }
.tn-progress { margin-right:auto; color:#bcbab5; font-size:13px; }
.tn-dialog :focus-visible { outline:2px solid #d8b86d; outline-offset:4px; }
@keyframes tn-enter { from {opacity:0;transform:translateY(8px)} to {opacity:1;transform:translateY(0)} }
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) { .tn-shell {padding:64px 24px 28px;} .tn-slide {grid-template-columns:1fr;gap:24px;} .tn-slide img {aspect-ratio:16/9;} .tn-slide h2 {font-size:28px;} .tn-slide p {font-size:17px;} .tn-controls {flex-wrap:wrap;} .tn-join {padding:12px 16px;} }
@media(prefers-reduced-motion:reduce) { .tn-slide {animation:none;} }

/* Immersive teacher network introduction. */
.tn-dialog { width:100vw; max-width:none; height:100dvh; max-height:none; margin:0; border:0; border-radius:0; background:#101010; }
.tn-shell { min-height:100%; box-sizing:border-box; max-width:1320px; margin:0 auto; padding:100px 70px 70px; display:flex; flex-direction:column; justify-content:center; }
.tn-close { position:fixed; right:28px; top:24px; border-color:#505050; color:#ddd; }
.tn-slide { grid-template-columns:1fr 1fr; gap:90px; align-items:center; }
.tn-slide img { grid-row:1 / 3; border-radius:24px; aspect-ratio:1 / 1; max-height:64dvh; object-fit:cover; }
.tn-slide > div { text-align:center; align-self:center; padding-bottom:80px; }
.tn-kicker { color:#d8b86d; font-size:14px; letter-spacing:.1em; margin-bottom:28px; }
.tn-slide h2 { font-size:36px; line-height:1.2; }
.tn-slide p { font:400 19px/1.65 Georgia,serif; max-width:28em; margin:0 auto; }
.tn-controls { width:calc((100% - 90px)/2); margin:-100px 0 0 auto; position:relative; display:grid; grid-template-columns:52px 1fr; gap:24px 12px; }
.tn-progress { grid-column:1 / -1; display:flex; justify-content:center; gap:8px; margin:0 0 8px; }
.tn-progress span { width:34px; height:4px; background:#737373; border-radius:2px; transition:background .25s ease; }
.tn-progress span.active { background:#fff; }
.tn-controls .tn-next,.tn-controls .tn-join { min-height:52px; grid-column:2; text-align:center; display:flex; align-items:center; justify-content:center; background:#d8b86d; border-color:#d8b86d; color:#171717; font-weight:600; }
.tn-controls .tn-next:hover,.tn-controls .tn-join:hover { background:#e3c784; border-color:#e3c784; }
.tn-controls .tn-back { grid-column:1; min-height:52px; padding:0; font-size:24px; }
.tn-controls [hidden] { display:none !important; }
.tn-controls:has(.tn-back[hidden]) .tn-next { grid-column:1 / -1; }
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
 .tn-shell {padding:76px 24px 36px;justify-content:flex-start;}
 .tn-close {right:18px;top:16px;}
 .tn-slide {grid-template-columns:1fr;gap:28px;}
 .tn-slide img {grid-row:auto;aspect-ratio:4/3;max-height:36dvh;border-radius:18px;}
 .tn-slide > div {padding-bottom:0;}
 .tn-kicker {font-size:12px;margin-bottom:16px;}
 .tn-slide h2 {font-size:28px;margin-bottom:18px;}
 .tn-slide p {font-size:17px;line-height:1.55;}
 .tn-controls {width:100%;margin:32px 0 0;gap:20px 12px;}
}

.collection-process-toggle { transition: background-color .25s ease; border-radius:12px; }
.collection-process-toggle .faq-icon { transition: background-color .25s ease, box-shadow .25s ease; }
.collection-process-toggle .collection-process-sub { transition: color .25s ease; }
@media(hover:hover) and (pointer:fine) {
 .collection-process-toggle:hover { background:rgba(30,30,30,.08); }
 .collection-process-toggle:hover .faq-icon { box-shadow:0 0 0 5px rgba(176,141,69,.12); }
 .collection-process-toggle:hover .collection-process-sub { color:var(--ink); }
}
.collection-process-toggle:focus-visible { outline:2px solid var(--gold); outline-offset:5px; }
@media(prefers-reduced-motion:reduce) { .collection-process-toggle,.collection-process-toggle .faq-icon,.collection-process-toggle .collection-process-sub { transition:none; } }

/* A quiet photographic finish to the teacher invitation. */
.ls-join-inner .gd-outline-btn{order:2}
.ls-join-photo{display:block;order:1;width:100%;height:0;flex:1 1 0;object-fit:cover;object-position:50% 83%;margin:0 0 24px;border-radius:4px;min-height:0}

#page-visit .story-hero{background-image:linear-gradient(180deg,rgba(26,26,26,.45) 0%,rgba(26,26,26,.35) 40%,rgba(26,26,26,.92) 100%),url("image-65b5384bdfc4d6e63820-optimized.webp") ;background-position:center,center 50%}

#page-rentals .story-hero{background-image:linear-gradient(180deg,rgba(26,26,26,.45) 0%,rgba(26,26,26,.35) 40%,rgba(26,26,26,.92) 100%),url("image-91963e58c35378e5f991-optimized.webp");background-position:center,center 40%}


/* Performance photograph and an ivory next-event feature. */
#page-events .ev-hero { position: relative; isolation: isolate; background: var(--ink); min-height: 520px; padding: 100px 56px; display: flex; align-items: center; }
#page-events .ev-hero-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 58%; z-index: -2; }
#page-events .ev-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(0,0,0,0.08) 20%, rgba(0,0,0,0.25) 48%, rgba(0,0,0,0.8) 100%); }
#page-events .ev-hero .ev-hero-inner { display: flex; justify-content: flex-end; width: 100%; }
#page-events .ev-hero-copy { width: 44%; max-width: 470px; }
#page-events .ev-hero h1 { color: #fff; font-size: clamp(38px, 4.2vw, 58px); }
#page-events .ev-hero .ev-lede { color: rgba(255,255,255,0.88); max-width: 36ch; }
#page-events .ev-wrap > .ev-next { max-width: none; display: grid; grid-template-columns: 220px 1fr; gap: 44px; align-items: center; padding: 48px 0; border-bottom: 1px solid rgba(26,26,26,0.15); }
#page-events .ev-wrap > .ev-next[hidden] { display: none; }
#page-events .ev-wrap .ev-next-flyer { transform: none; border-radius: 12px; overflow: hidden; box-shadow: 0 12px 32px rgba(0,0,0,0.12); }
#page-events .ev-wrap .ev-next-body { margin: 0; padding: 0; }
#page-events .ev-wrap .ev-next-title { color: var(--ink); font-size: 32px; }
#page-events .ev-wrap .ev-next-when { color: var(--charcoal-text, #4A4A48); }
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
 #page-events .ev-hero { min-height: 620px; padding: 48px 24px; align-items: flex-end; }
 #page-events .ev-hero-photo { object-position: 40% center; }
 #page-events .ev-hero::before { background: linear-gradient(to top, rgba(0,0,0,0.92), rgba(0,0,0,0.35) 50%, rgba(0,0,0,0.08) 80%); }
 #page-events .ev-hero-copy { width: 100%; max-width: none; }
 #page-events .ev-wrap > .ev-next { grid-template-columns: 110px 1fr; gap: 20px; padding: 32px 0; }
 #page-events .ev-wrap .ev-next-title { font-size: 24px; }
}


/* Quiet primary actions; red remains an accent. */
body .btn-primary.sans, body .cat-btn.sans, body .modal-cta.sans,
body .connect-option-solid.sans, body .restoration-submit { background: var(--ink); color: var(--ivory); border-color: var(--ink); }
body .connect-option-outline { color: var(--ink); border-color: var(--ink); }
body .connect-option-outline:hover { background: var(--ink); color: var(--ivory); border-color: var(--ink); }
body .header-main .header-cta.sans, body .gd-dark .btn-primary.sans,
body .gp-hero .btn-primary.sans, body .ev-hero .btn-primary.sans { background: var(--ivory); color: var(--ink); border-color: var(--ivory); }
body .offer-bar { background: var(--ink); color: var(--ivory); }
body .offer-btn.solid { background: var(--ivory); color: var(--ink); }


/* Neutral details remain legible when Home switches to night mode. */
[data-theme="night"] #page-home .kicker.sans,
[data-theme="night"] #page-home .visit-info .kicker.sans,
[data-theme="night"] #page-home .visit-hours .kicker.sans { color: var(--gold); }
[data-theme="night"] #page-home .category-item.active { border-bottom-color: var(--gold); }
[data-theme="night"] #page-home .category-item:hover .category-icon svg { stroke: var(--gold); }
[data-theme="night"] #page-home .category-item:hover .category-icon .brand-a { color: var(--gold); }
[data-theme="night"] #page-home .quote-dot.active { background: var(--gold); }


#connectModal .connect-option-solid.sans { background: var(--gold); color: var(--ink); border-color: var(--gold); }
#connectModal .connect-option-solid.sans:hover { background: #C9A45A; border-color: #C9A45A; }


/* Tactile category controls: one quiet response per engagement. */
#categoryNavBar .category-item { -webkit-tap-highlight-color: transparent; touch-action: manipulation; transition: border-color 240ms var(--ease), color 240ms var(--ease); }
#categoryNavBar .category-icon { position: relative; isolation: isolate; transition: transform 260ms var(--ease); }
#categoryNavBar .category-icon::before { content: ""; position: absolute; inset: -9px; z-index: -1; border-radius: 50%; background: radial-gradient(circle, rgba(176,141,69,0.16), rgba(176,141,69,0) 72%); opacity: 0; transform: scale(.85); transition: opacity 260ms var(--ease), transform 260ms var(--ease); pointer-events: none; }
#categoryNavBar .category-item.active { border-bottom-color: var(--gold); }
#categoryNavBar .category-item.active .category-icon svg, #categoryNavBar .category-item:focus-visible .category-icon svg { stroke: var(--gold); }
#categoryNavBar .category-item.active .category-icon .brand-a { color: var(--gold); }
#categoryNavBar .category-item:focus-visible .category-icon::before, #categoryNavBar .category-item:active .category-icon::before { opacity: 1; transform: scale(1); }
#categoryNavBar .category-item:active .category-icon { transform: translateY(0) scale(.94); transition-duration: 100ms; }
@media (hover: hover) and (pointer: fine) {
 #categoryNavBar .category-item:hover .category-icon { transform: translateY(-2px); }
 #categoryNavBar .category-item:hover .category-icon::before { opacity: 1; transform: scale(1); }
 #categoryNavBar .category-item:hover .category-icon svg { stroke: var(--gold); animation: fc-icon-engage 280ms var(--ease) 1; }
 #categoryNavBar .category-item:hover .category-icon .brand-a { color: var(--gold); }
 #categoryNavBar .category-item:active .category-icon { transform: scale(.94); }
}
@keyframes fc-icon-engage { 0% { transform: rotate(0); } 45% { transform: rotate(-3deg); } 100% { transform: rotate(0); } }
@media (prefers-reduced-motion: reduce) {
 #categoryNavBar .category-item, #categoryNavBar .category-icon, #categoryNavBar .category-icon::before { transition: none !important; }
 #categoryNavBar .category-item .category-icon, #categoryNavBar .category-item .category-icon svg, #categoryNavBar .category-icon::before { transform: none !important; animation: none !important; }
}


/* Link each inventory action to its adjacent measurement. */
.gd-size-meta, .gd-size-meta svg { transition: color 240ms var(--ease), stroke 240ms var(--ease); }
.gd-size-foot:has(.gd-outline-btn:focus-visible) .gd-size-meta,
.gd-size-foot:has(.gd-outline-btn:active) .gd-size-meta { color: var(--gold); }
.gd-size-foot:has(.gd-outline-btn:focus-visible) .gd-size-meta svg,
.gd-size-foot:has(.gd-outline-btn:active) .gd-size-meta svg { stroke: var(--gold); }
@media (hover: hover) { .gd-size-foot:has(.gd-outline-btn:hover) .gd-size-meta { color: var(--gold); } .gd-size-foot:has(.gd-outline-btn:hover) .gd-size-meta svg { stroke: var(--gold); } }
@media (prefers-reduced-motion: reduce) { .gd-size-meta, .gd-size-meta svg { transition: none; } }


#page-home .strip-heritage { display: flex; align-items: center; justify-content: center; gap: 8px; flex: 0 0 auto; color: var(--gold); font-size: 10px; letter-spacing: .12em; white-space: nowrap; padding: 10px 0 10px 20px; margin-left: 8px; border-left: 1px solid rgba(176,141,69,.55); }
#page-home .strip-heritage span { color: var(--gold); }


.offer-bar .offer-heritage.sans { color: var(--gold); font-size: 11px; letter-spacing: .14em; white-space: nowrap; border-left: 1px solid rgba(176,141,69,.5); padding-left: 18px; margin-left: 6px; }
@media (max-width: 600px) { .offer-bar .right { flex-wrap: wrap; } .offer-bar .offer-heritage.sans { font-size: 10px; padding-left: 12px; margin-left: 0; } }


.offer-bar .offer-heritage.sans { display: flex; flex-direction: column; align-items: center; gap: 3px; border: 0; padding: 0; margin-left: 24px; }
.offer-bar .offer-heritage svg { display: block; width: 68px; height: 8px; }
.offer-bar .offer-close { margin-left: 18px; }
@media (max-width: 600px) { .offer-bar .offer-heritage.sans { margin-left: 8px; } .offer-bar .offer-close { margin-left: 8px; } }


.offer-bar { padding-right: 190px; }
.offer-bar > .offer-heritage.sans { position: absolute; right: 36px; top: 50%; transform: translateY(-50%); margin: 0; }
.offer-bar .offer-close { margin-left: 10px; }
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) { .offer-bar { padding-right: 112px; } .offer-bar > .offer-heritage.sans { right: 20px; } }


.offer-bar > .offer-heritage.sans { font-size: 13px; }
.offer-bar > .offer-heritage svg { width: 80px; height: 10px; }

#lessons-teachers { scroll-margin-top: 120px; }

/* Cropped brand letterforms contained within the gallery copy panel. */
#page-home .gallery-feature { padding-top: 0; padding-bottom: 0; }
#page-home .gallery-feature .split-copy { position: relative; isolation: isolate; overflow: hidden; }
#page-home .gallery-feature .split-copy::before,
#page-home .gallery-feature .split-copy::after { position: absolute; z-index: -1; pointer-events: none; color: #F2F0EC; opacity: .09; font-family: Georgia, 'Times New Roman', serif; font-weight: 400; line-height: .8; }
#page-home .gallery-feature .split-copy::before { content: 'F'; font-size: clamp(260px, 29vw, 540px); top: -90px; right: -32px; transform: rotate(-8deg); }
#page-home .gallery-feature .split-copy::after { content: '& C'; font-size: clamp(210px, 23vw, 430px); white-space: nowrap; bottom: -110px; right: -115px; transform: rotate(-8deg); }
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
  #page-home .gallery-feature .split-copy::before { font-size: 290px; top: -65px; right: -22px; opacity: .09; }
  #page-home .gallery-feature .split-copy::after { font-size: 250px; bottom: -70px; right: -85px; opacity: .09; }
}


/* Clearer upper navigation while retaining its compact height. */
header .brand-worlds { font-size: 12px !important; letter-spacing: .065em !important; color: #222221 !important; }
header .brand-worlds a { position: relative; opacity: 1; }
header .brand-worlds a::after { content: ''; position: absolute; left: 0; right: 0; bottom: -5px; height: 1px; background: #B08D45; transform: scaleX(0); transition: transform .18s ease; }
header .brand-worlds a[aria-current="page"]::after { transform: scaleX(1); }
@media (prefers-reduced-motion: reduce) { header .brand-worlds a::after { transition: none; } }


/* Compact offer layout after removing the anniversary badges. */
.offer-bar { padding-right: 56px; }
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
  .offer-bar { padding: 12px 20px; gap: 10px; }
  .offer-bar .left { gap: 3px; flex-direction: column; align-items: flex-start; }
  .offer-bar .headline.sans { font-size: 14px; }
  .offer-bar .sub.sans { font-size: 12px; }
  .offer-bar .right { flex-wrap: nowrap; gap: 8px; }
  .offer-bar .offer-btn.sans { font-size: 12px; padding: 8px 12px; }
  .offer-bar .offer-close { margin-left: auto; flex-shrink: 0; }
}


#page-storage .cat-hero { padding-bottom: 60px; }
#page-storage .st-use { border: 1px solid rgba(26,26,26,.2); border-top: 2px solid rgba(26,26,26,.2); border-radius: 12px; transition: border-color .24s ease, background-color .24s ease, transform .24s ease, box-shadow .24s ease; }
#page-storage .st-use:hover, #page-storage .st-use:focus-visible { border-top-color: #B08D45; background: #FAF8F4; transform: translateY(-3px); box-shadow: 0 8px 22px rgba(26,26,26,.06); }
#page-storage .st-use:focus-visible { outline: 2px solid #B08D45; outline-offset: 3px; }
@media (max-width: 860px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) { #page-storage .cat-hero { padding-bottom: 40px; } }
@media(prefers-reduced-motion: reduce) { .st-use { transition: none !important; transform: none !important; } }


/* Gold collection labels on the home page. */
#page-home .collection-tile .label .kicker.sans { color: #D8B86D; }


/* Mobile touch targets, keyboard-friendly fields, and bounded navigation. */
@media (max-width: 860px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
 .mobile-menu-toggle { width: 44px; height: 44px; flex-shrink: 0; }
 .mobile-nav-panel { max-height: calc(100dvh - 120px); overflow-y: auto; overscroll-behavior: contain; padding-bottom: max(20px, env(safe-area-inset-bottom)); }
 .mobile-nav-panel a { min-height: 44px; box-sizing: border-box; }
 .header-right { min-width: 0; }
 .offer-bar { padding-bottom: max(12px, env(safe-area-inset-bottom)); }
 .offer-bar .offer-close { width: 44px; height: 44px; }
 .offer-bar .offer-btn { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; }
 input:not([type="checkbox"]):not([type="radio"]), select, textarea { font-size: 16px !important; }
 #serviceRequest, .restoration-form-card { max-height: calc(100dvh - 32px); overflow-y: auto; overscroll-behavior: contain; }
 .st-service-tabs button, .ls-teacher-card button, .gd-video-more { min-height: 44px; }
 .collection-tile:active { outline: 1px solid var(--gold); outline-offset: -1px; }
}
@media (hover: none) {
 .collection-tile:hover img, .gd-size-card:hover img { transform: none; }
 #page-storage .st-use:hover { transform: none; }
}


.gallery-photo-link{display:block;position:relative;overflow:hidden;color:#fff;text-decoration:none;background:#111;}
.gallery-photo-link img{display:block;transition:transform 850ms cubic-bezier(.22,1,.36,1),filter 600ms ease;}
.gallery-photo-cue{position:absolute;left:28px;bottom:28px;padding:12px 17px;background:rgba(24,24,24,.82);border:1px solid rgba(255,255,255,.55);font:14px/1.3 Arial,sans-serif;opacity:0;transform:translateY(8px);transition:opacity 350ms ease,transform 450ms ease;pointer-events:none;}
.gallery-photo-link:focus-visible{outline:2px solid #b49a58;outline-offset:-5px;}
.gallery-photo-link:focus-visible img{transform:scale(1.025);filter:brightness(1.06);}
.gallery-photo-link:focus-visible .gallery-photo-cue{opacity:1;transform:translateY(0);}
@media(hover:hover){.gallery-photo-link:hover img{transform:scale(1.025);filter:brightness(1.06);}.gallery-photo-link:hover .gallery-photo-cue{opacity:1;transform:translateY(0);}}
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {.gallery-feature .gallery-photo-link img{height:auto;min-height:0;aspect-ratio:16/9;object-fit:cover;}.gallery-photo-cue{left:20px;bottom:20px;opacity:1;transform:none;}}
@media(prefers-reduced-motion:reduce){.gallery-photo-link img,.gallery-photo-cue{transition:none;}.gallery-photo-link:hover img,.gallery-photo-link:focus-visible img{transform:none;}}


/* Keep the pianist's face visible in the digital collection card. */
.gd-size-card img[alt="Pianist practicing a digital piano at home"]{object-position:75% 12%;}


.fn-facts .fn-interactive{position:relative;outline:none;cursor:default;}
.fn-facts .fn-interactive:focus-visible{outline:2px solid #B08D45;outline-offset:7px;}
.fn-drawer{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows 550ms cubic-bezier(.22,1,.36,1),opacity 350ms ease;}
.fn-drawer-clip{overflow:hidden;min-height:0;}
.fn-drawer-surface{margin-top:20px;background:#e7e5e1;border-top:1px solid #1e1e1e;border-radius:0 0 7px 7px;padding:12px 0;color:#1e1e1e;transform:translateY(-15px);transition:transform 550ms cubic-bezier(.22,1,.36,1);}
.fn-drawer svg{display:block;width:160px;height:104px;margin:auto;overflow:visible;}
.fn-interactive:is(:hover,:focus-visible) .fn-drawer{grid-template-rows:1fr;opacity:1;}
.fn-interactive:is(:hover,:focus-visible) .fn-drawer-surface{transform:translateY(0);}
.fn-person,.fn-arm,.fn-legs,.fn-sheets{transform-box:fill-box;transform-origin:center;}
.fn-interactive:is(:hover,:focus-visible) .fn-person{animation:fn-look 2s ease .15s 1;}
.fn-step-1:is(:hover,:focus-visible) .fn-sheets{animation:fn-compare 2s ease .15s 1;}
.fn-step-2 .fn-check{stroke-dasharray:25;stroke-dashoffset:25;}
.fn-step-2:is(:hover,:focus-visible) .fn-check{animation:fn-confirm 2s ease .15s 1 forwards;}
.fn-step-3:is(:hover,:focus-visible) .fn-person{animation:fn-walk 2s ease .15s 1 forwards;}
.fn-step-3:is(:hover,:focus-visible) .fn-legs{animation:fn-stride .5s ease .15s 3;}
@keyframes fn-look{0%,100%{transform:rotate(0)}30%{transform:rotate(-7deg)}65%{transform:rotate(7deg)}}
@keyframes fn-compare{0%,100%{transform:rotate(0)}30%{transform:rotate(-5deg)}65%{transform:rotate(5deg)}}
@keyframes fn-confirm{0%,40%{stroke-dashoffset:25}75%,100%{stroke-dashoffset:0}}
@keyframes fn-walk{0%{transform:translateX(-12px)}75%,100%{transform:translateX(12px)}}
@keyframes fn-stride{0%,100%{transform:rotate(-9deg)}50%{transform:rotate(9deg)}}
@media(hover:none){.fn-drawer{grid-template-rows:1fr;opacity:1;}.fn-drawer-surface{transform:none;}}
@media(prefers-reduced-motion:reduce){.fn-drawer,.fn-drawer-surface{transition:none;}.fn-interactive .fn-drawer svg *{animation:none!important;}.fn-step-2 .fn-check{stroke-dashoffset:0;}}


/* Articulated financing characters: movement is drawn joint by joint. */
.fn-interactive .fn-person,.fn-interactive .fn-arm,.fn-interactive .fn-legs,.fn-interactive .fn-sheets{animation:none!important;transform:none!important}
.fn-drawer svg{width:184px;height:120px}


/* Compact editorial sketches, with restrained proportions. */
.fn-drawer svg{width:116px;height:76px}
.fn-drawer-surface{padding:7px 0;margin-top:16px}


/* Shallower pull-outs keep the process compact. */
.fn-drawer svg{width:89px;height:58px}
.fn-drawer-surface{padding:4px 0}


/* Financing figures live beside the copy, without changing card height. */
.fn-facts .fn-interactive{padding-right:60px;min-height:76px}
.fn-facts .fn-drawer{position:absolute;right:8px;top:50%;width:42px;height:58px;display:block;opacity:0;transform:translateY(-50%) translateX(-4px);pointer-events:none;transition:opacity 260ms ease,transform 360ms cubic-bezier(.22,1,.36,1)}
.fn-facts .fn-drawer-clip{overflow:visible;height:100%}
.fn-facts .fn-drawer-surface{margin:0;padding:0;background:transparent;border:0;border-radius:0;transform:none;transition:none;color:var(--ink)}
.fn-facts .fn-drawer svg{width:42px;height:58px;margin:0;overflow:visible}
.fn-facts .fn-interactive:is(:hover,:focus-visible) .fn-drawer{opacity:1;transform:translateY(-50%) translateX(0)}
@media(max-width:560px){.fn-facts .fn-drawer{top:0;transform:translateX(-4px)}.fn-facts .fn-interactive:is(:hover,:focus-visible) .fn-drawer{transform:translateX(0)}}
@media(hover:none){.fn-facts .fn-drawer{opacity:.8;transform:translateY(-50%)} }
@media(hover:none) and (max-width:560px){.fn-facts .fn-drawer{transform:none}}
@media(prefers-reduced-motion:reduce){.fn-facts .fn-drawer{transition:none}}


/* Keep the original copy measure; use only the quiet upper-right corner. */
.fn-facts .fn-interactive{padding-right:32px;min-height:0}
.fn-facts .fn-drawer{right:0;top:-9px;width:23px;height:32px;transform:translateX(-2px)}
.fn-facts .fn-drawer svg{width:23px;height:32px}
.fn-facts .fn-interactive:is(:hover,:focus-visible) .fn-drawer{transform:translateX(0)}
@media(max-width:560px){.fn-facts .fn-drawer{top:-5px;right:3px}}
@media(hover:none){.fn-facts .fn-drawer{transform:none}}


/* A small increase for legibility in the upper-right corner. */
.fn-facts .fn-drawer,.fn-facts .fn-drawer svg{width:27px;height:37px}


/* Slight increase for clearer gestures, preserving the original copy spacing. */
.fn-facts .fn-drawer,.fn-facts .fn-drawer svg{width:31px;height:43px}


/* Attach each character visually to the title without changing text flow. */
.fn-facts .fn-drawer{right:auto;left:calc(100% - 31px)}
@media(max-width:560px){.fn-facts .fn-drawer{right:auto}}


/* Mirror the complete middle scenes inward toward their titles. */
.fn-step-1 .fn-drawer svg,.fn-step-2 .fn-drawer svg{transform:scaleX(-1);transform-origin:center}


/* Keep the truck prominent in the moving and storage hero crop. */
#page-storage .cat-media img{object-position:43% 58%}


/* Focus the pre-owned hero on the player and piano, preserving its dimensions. */
.cat-media img[alt="Woman playing a wooden upright piano at home"]{object-position:50% 65%}


/* Frame the listener, player and keyboard in the pre-owned hero. */
.cat-media img[alt="Man playing an upright piano while a woman listens at home"]{object-position:50% 22%}


/* Mobile performance calendar: date rail and aligned actions. */
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
#page-events .ev-hero{padding:108px 20px 36px}
#page-events .ev-hero .ev-hero-inner{display:block}
#page-events .ev-hero h1{font-size:34px;max-width:18ch}
#page-events .ev-lede{font-size:16px;line-height:1.55}
#page-events .ev-wrap{padding:24px 20px 64px}
#page-events .ev-discovery{grid-template-columns:minmax(0,1fr);gap:16px;margin:24px 0 0}
#page-events .ev-discovery label{font-family:Arial,sans-serif;font-size:12px;color:var(--ink)}
#page-events .ev-discovery input,#page-events .ev-discovery select{font-family:Arial,sans-serif;font-size:16px;min-height:48px;border-radius:6px;background:#fff;margin-top:7px}
#page-events .ev-discovery label:last-child{border-top:1px solid rgba(26,26,26,.18);border-bottom:1px solid rgba(26,26,26,.18);padding:12px 0;display:grid;grid-template-columns:86px minmax(0,1fr);align-items:center;gap:12px}
#page-events .ev-discovery select{margin:0;background:transparent;border:0;padding:10px 8px}
#page-events .ev-month-heading{font-size:26px;font-weight:600;letter-spacing:-.02em;margin:32px 0 0;padding:0 0 18px;border-bottom:1px solid rgba(26,26,26,.25)}
#page-events .ev-row{grid-template-columns:48px minmax(0,1fr);gap:14px 18px;align-items:start;padding:24px 0;margin:0;background:transparent;border:0;border-bottom:1px solid rgba(26,26,26,.25);border-radius:0}
#page-events .ev-date{grid-column:1;grid-row:1 / 3;padding:2px 0 0;color:var(--ink);text-align:left}
#page-events .ev-date .m{display:none}
#page-events .ev-date .w{display:block;font:700 11px/1.2 Arial,sans-serif;letter-spacing:.04em;text-transform:uppercase;margin-bottom:7px}
#page-events .ev-date .d{font-size:42px;letter-spacing:-.05em}
#page-events .ev-info{grid-column:2;grid-row:1;min-width:0;display:flex;flex-direction:column}
#page-events .ev-info h3{font-size:25px;line-height:1.2;margin:10px 0 0;overflow-wrap:break-word}
#page-events .ev-when{order:-1;font:13px/1.5 Arial,sans-serif;color:var(--charcoal);margin:0}
#page-events .ev-info p{display:none}
#page-events .ev-flyer{display:none}
#page-events .ev-actions{grid-column:2;grid-row:2;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;justify-content:start;min-width:0}
#page-events .ev-actions .btn-primary,#page-events .ev-actions .btn-outline-ink{display:flex;justify-content:center;align-items:center;width:100%;min-height:44px;padding:9px 6px;font:13px/1.2 Arial,sans-serif;border-radius:5px;white-space:normal;text-align:center}
#page-events .ev-actions .btn-primary{background:var(--ink);color:var(--ivory);border:1px solid var(--ink)}
#page-events .ev-actions .btn-outline-ink{background:transparent;color:var(--ink);border:1px solid var(--ink)}
#page-events .ev-actions .ev-share{grid-column:1 / -1;justify-self:start;padding:7px 0;min-height:36px;border:0;border-radius:0;font:12px Arial,sans-serif}
#page-events .ev-next{max-width:none;width:100%;display:grid;grid-template-columns:82px minmax(0,1fr);gap:16px;align-items:center;padding:16px;background:#1e1e1e;border-radius:6px}
#page-events .ev-next[hidden]{display:none}
#page-events .ev-next-flyer{min-height:0;transform:none;box-shadow:none;border-radius:3px;overflow:hidden}
#page-events .ev-next-flyer img{height:104px;object-fit:cover}
#page-events .ev-next-body{margin:0;padding:0;min-width:0}
#page-events .ev-next-title{font-size:19px}
#page-events .ev-next-when{font:12px/1.4 Arial,sans-serif;margin-bottom:12px}
#page-events .ev-next .btn-primary{font:12px Arial,sans-serif;min-height:40px;padding:9px 12px}
.ev-detail{width:calc(100% - 24px);max-height:calc(100dvh - 24px);border-radius:8px}
}
.ev-date .w{display:none}
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {#page-events .ev-date .w{display:block}}


.ev-mobile-controls{display:none}
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
#page-events .ev-discovery label:last-child{display:none}
#page-events .ev-mobile-controls{display:block;margin-top:18px}
.ev-control-row{display:flex;justify-content:space-between;gap:16px;border-top:1px solid rgba(26,26,26,.2);border-bottom:1px solid rgba(26,26,26,.2);padding:8px 0}
.ev-control-row button{display:flex;align-items:center;gap:10px;min-height:48px;padding:6px 0;background:transparent;border:0;color:var(--ink);font:600 13px Arial,sans-serif;text-transform:uppercase;letter-spacing:.025em;cursor:pointer}
.ev-control-row svg{width:22px;height:22px;flex-shrink:0}
.ev-control-row button.is-active span{border-bottom:1px solid var(--gold)}
.ev-control-row button:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.ev-control-panel{padding:18px 0;border-bottom:1px solid rgba(26,26,26,.2);display:grid;gap:14px}
.ev-control-panel[hidden]{display:none}
.ev-control-panel label{font:12px Arial,sans-serif;color:var(--ink);min-width:0}
.ev-control-panel input,.ev-control-panel select{box-sizing:border-box;display:block;width:100%;min-width:0;max-width:100%;min-height:46px;margin-top:7px;padding:10px 12px;border:1px solid rgba(26,26,26,.25);border-radius:5px;background:#fff;color:var(--ink);font:16px Arial,sans-serif}
.ev-control-panel button{justify-self:start;border:0;border-bottom:1px solid var(--ink);background:transparent;padding:8px 0;color:var(--ink);font:13px Arial,sans-serif;min-height:40px;cursor:pointer}
}


@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
#page-events .ev-actions{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr .8fr;gap:8px;margin-top:4px}
#page-events .ev-actions .ev-share{grid-column:auto;justify-self:stretch;display:flex;justify-content:center;align-items:center;gap:6px;min-height:44px;width:100%;padding:9px 6px;border:1px solid var(--ink);border-radius:5px;background:transparent;color:var(--ink);font:13px/1.2 Arial,sans-serif;box-sizing:border-box}
#page-events .ev-actions .ev-share svg{width:15px;height:15px;flex-shrink:0}
}


@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
#page-events .ev-wrap > .ev-next{box-sizing:border-box;grid-template-columns:76px minmax(0,1fr);gap:16px;padding:18px;border:0;border-radius:6px;background:#1e1e1e;align-items:center;max-width:100%}
#page-events .ev-wrap .ev-next-flyer{width:76px;min-height:0;box-shadow:none;transform:none;border-radius:3px;overflow:hidden;background:transparent;align-self:center}
#page-events .ev-wrap .ev-next-flyer img{display:block;width:76px;height:108px;object-fit:contain}
#page-events .ev-wrap .ev-next-body{margin:0;padding:0;min-width:0}
#page-events .ev-wrap .ev-next-label{font:600 10px/1.2 Arial,sans-serif;letter-spacing:.14em;color:#b08d45;margin:0 0 7px}
#page-events .ev-wrap .ev-next-title{color:#f2f0ec;font-size:20px;line-height:1.2;margin:0 0 8px;overflow-wrap:break-word}
#page-events .ev-wrap .ev-next-when{color:rgba(242,240,236,.78);font:12px/1.45 Arial,sans-serif;margin:0 0 12px}
#page-events .ev-wrap .ev-next .btn-primary{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:9px 13px;border:1px solid rgba(242,240,236,.6);border-radius:5px;background:transparent;color:#f2f0ec;font:12px/1.2 Arial,sans-serif}
#page-events .ev-wrap .ev-next .btn-primary:hover{background:#f2f0ec;color:#1e1e1e}
}


.ev-flyer-pocket{display:none}
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
#page-events .ev-row{position:relative;isolation:isolate}
#page-events .ev-flyer-pocket{display:block;position:absolute;top:-13px;right:16px;width:96px;z-index:3}
#page-events .ev-flyer-tab{position:relative;width:96px;height:23px;display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid rgba(26,26,26,.2);border-bottom:0;border-radius:5px 5px 0 0;padding:0;background:#e7e3da;color:#fff;cursor:pointer;font:10px/1 Arial,sans-serif;letter-spacing:.06em}
.ev-flyer-edge{position:absolute;inset:0;background-size:cover;background-position:center 15%;filter:brightness(.45);opacity:.8}
.ev-flyer-tab span:last-child{position:relative;z-index:1}
.ev-flyer-tab:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.ev-pocket-preview{position:absolute;right:0;bottom:23px;width:min(210px,65vw);padding:5px;background:#faf8f4;border:1px solid rgba(26,26,26,.15);border-radius:5px 5px 0 5px;box-shadow:0 8px 24px rgba(0,0,0,.14);opacity:0;visibility:hidden;transform:translateY(22px) scale(.98);transform-origin:bottom right;transition:transform 420ms cubic-bezier(.22,1,.36,1),opacity 250ms ease,visibility 420ms;pointer-events:none}
.ev-pocket-preview img{display:block;width:100%;max-height:260px;object-fit:contain;border-radius:2px}
#page-events .ev-flyer-open{z-index:5}
#page-events .ev-flyer-open .ev-pocket-preview{opacity:1;visibility:visible;transform:translateY(0) scale(1)}
#page-events .ev-flyer-open .ev-flyer-tab{border-color:var(--gold)}
}
@media(prefers-reduced-motion:reduce){.ev-pocket-preview{transition:none}}


@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
#page-events .ev-actions{grid-template-columns:1fr 1fr .82fr;gap:4px;margin-top:0}
#page-events .ev-actions .btn-primary,#page-events .ev-actions .btn-outline-ink,#page-events .ev-actions .ev-share{min-height:44px;border-radius:4px;padding:9px 5px;font-size:12px}
#page-events .ev-actions .ev-share{gap:4px}
}

@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
#page-events .ev-flyer-pocket{top:-12px;right:16px;width:128px}
#page-events .ev-flyer-tab{width:128px;height:20px;border:1px solid rgba(26,26,26,.12);border-bottom:0;border-radius:5px 5px 0 0;font-size:9px;letter-spacing:.03em;box-shadow:0 -2px 6px rgba(26,26,26,.04)}
#page-events .ev-flyer-tab .ev-flyer-edge{filter:none;opacity:1;background-position:center 22%}
#page-events .ev-flyer-tab span:last-child{margin-left:auto;margin-right:7px;padding:3px 5px;border-radius:2px;background:rgba(26,26,26,.66);color:#fff}
#page-events .ev-pocket-preview{bottom:20px}
#page-events .ev-flyer-open .ev-flyer-tab{border-color:rgba(26,26,26,.25)}
}


/* Compact mobile event actions and an inset flyer edge. */
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
#page-events .ev-row .ev-actions{display:flex;grid-column:1/-1;flex-wrap:nowrap;justify-content:flex-start;align-items:center;gap:6px;margin-top:0}
#page-events .ev-row .ev-actions .btn-primary,#page-events .ev-row .ev-actions .btn-outline-ink,#page-events .ev-row .ev-actions .ev-share{box-sizing:border-box;flex:0 0 auto;width:auto;min-width:0;min-height:34px;height:34px;padding:6px 10px;border-radius:4px;font:12px/1.2 Arial,sans-serif;white-space:nowrap}
#page-events .ev-row .ev-actions .ev-share{gap:4px}
#page-events .ev-row .ev-flyer-pocket{top:3px;right:16px;width:58px}
#page-events .ev-row .ev-flyer-tab{width:58px;height:28px;border:0;border-radius:0;padding:0;background:transparent;box-shadow:none}
#page-events .ev-row .ev-flyer-tab .ev-flyer-edge{inset:3px 0 auto;height:5px;border-radius:1px;filter:none;opacity:.75;background-position:center 22%;box-shadow:0 1px 0 rgba(26,26,26,.25);transition:opacity 200ms ease}
#page-events .ev-row .ev-flyer-tab span:last-child{display:none}
#page-events .ev-row .ev-flyer-tab:hover .ev-flyer-edge,#page-events .ev-row.ev-flyer-open .ev-flyer-edge{opacity:1}
#page-events .ev-row .ev-pocket-preview{bottom:24px}
}


/* Label-sized mobile event actions, without excess button space. */
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
#page-events .ev-list .ev-row .ev-actions{display:flex;grid-template-columns:none;justify-content:flex-start;align-items:center;gap:5px;width:auto;max-width:100%;margin:0;padding:0}
#page-events .ev-list .ev-row .ev-actions > .btn-primary,#page-events .ev-list .ev-row .ev-actions > .btn-outline-ink,#page-events .ev-list .ev-row .ev-actions > .ev-share{display:inline-flex;flex:0 0 auto;justify-content:center;align-items:center;box-sizing:border-box;width:max-content;min-width:0;max-width:none;height:32px;min-height:32px;padding:5px 8px;margin:0;border-radius:4px;font:12px/1.2 Arial,sans-serif;letter-spacing:0;white-space:nowrap;box-shadow:none}
#page-events .ev-list .ev-row .ev-actions > .ev-share{gap:4px}
#page-events .ev-list .ev-row .ev-actions > .ev-share svg{width:13px;height:13px}
}


/* A small flyer peeks from behind the event card. */
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
#page-events .ev-list .ev-row{overflow:visible}
#page-events .ev-list .ev-row .ev-flyer-pocket{top:-14px;right:22px;width:62px}
#page-events .ev-list .ev-row .ev-flyer-tab{display:block;width:62px;height:44px;overflow:visible;border:0;background:transparent;box-shadow:none;cursor:pointer;touch-action:manipulation}
#page-events .ev-list .ev-row .ev-flyer-tab .ev-flyer-edge{display:block;inset:0 auto auto 0;width:62px;height:44px;box-sizing:border-box;background-color:#fff;background-size:cover;background-position:center top;filter:none;opacity:1;border:1px solid rgba(26,26,26,.22);border-radius:4px 4px 0 0;box-shadow:0 -2px 5px rgba(26,26,26,.1);clip-path:inset(-7px -7px 29px -7px);transform:rotate(-3deg);transform-origin:50% 80%;animation:evFlyerRock 7s ease-in-out infinite}
#page-events .ev-list .ev-row:nth-of-type(2) .ev-flyer-edge{animation-delay:1s}
#page-events .ev-list .ev-row:nth-of-type(3) .ev-flyer-edge{animation-delay:2s}
#page-events .ev-list .ev-row .ev-flyer-tab:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:3px}
#page-events .ev-list .ev-row.ev-flyer-open .ev-flyer-edge{animation:none;transform:rotate(0)}
#page-events .ev-list .ev-row .ev-pocket-preview{bottom:44px;border-radius:5px;transform-origin:bottom right}
}
@keyframes evFlyerRock{0%,72%,100%{transform:rotate(-3deg) translateY(0)}78%{transform:rotate(2deg) translateY(-2px)}84%{transform:rotate(-5deg) translateY(-1px)}90%{transform:rotate(-3deg) translateY(0)}}
@media(prefers-reduced-motion:reduce){#page-events .ev-list .ev-row .ev-flyer-tab .ev-flyer-edge{animation:none}}


/* Let the flyer introduce the event instead of a gold hover rim. */
#page-events .ev-list .ev-row{position:relative;overflow:visible;isolation:isolate}
#page-events .ev-list .ev-row:hover,#page-events .ev-list .ev-row:focus-within{border-top-color:rgba(26,26,26,.16)}
#page-events .ev-list .ev-row .ev-flyer-pocket{display:block;position:absolute;top:0;right:20px;width:150px;z-index:4}
#page-events .ev-list .ev-row .ev-flyer-tab{display:block;position:absolute;top:0;right:0;width:44px;height:44px;border:0;padding:0;background:transparent;box-shadow:none;overflow:visible;cursor:pointer}
#page-events .ev-list .ev-row .ev-flyer-tab .ev-flyer-edge{display:none;animation:none}
#page-events .ev-list .ev-row .ev-flyer-tab span:last-child{display:none}
#page-events .ev-list .ev-row .ev-pocket-preview{position:absolute;top:0;bottom:auto;right:0;width:150px;box-sizing:border-box;padding:4px;border:1px solid rgba(26,26,26,.16);border-radius:4px;background:#fff;box-shadow:0 6px 18px rgba(26,26,26,.13);opacity:0;visibility:hidden;clip-path:inset(0 0 100% 0);transform:translateY(-10px) rotate(-3deg);transform-origin:bottom right;transition:transform 550ms cubic-bezier(.22,1,.36,1),clip-path 550ms cubic-bezier(.22,1,.36,1),opacity 250ms ease,visibility 550ms;pointer-events:none}
#page-events .ev-list .ev-row .ev-pocket-preview img{display:block;width:100%;max-height:200px;object-fit:contain;border-radius:1px}
#page-events .ev-list .ev-row.ev-flyer-open{z-index:6}
#page-events .ev-list .ev-row.ev-flyer-open .ev-pocket-preview{opacity:1;visibility:visible;clip-path:inset(0 0 0 0);transform:translateY(calc(-100% + 10px)) rotate(-3deg)}
@media(hover:hover) and (pointer:fine){
#page-events .ev-list .ev-row:hover{z-index:6}
#page-events .ev-list .ev-row:hover .ev-pocket-preview{opacity:1;visibility:visible;clip-path:inset(0 0 0 0);transform:translateY(calc(-100% + 10px)) rotate(-3deg)}
}
@media(prefers-reduced-motion:reduce){#page-events .ev-list .ev-row .ev-pocket-preview{transition:none}}


/* Flyer artwork replaces only the existing gold top edge. */
#page-events .ev-list .ev-row .ev-flyer-pocket{display:none!important}
#page-events .ev-list .ev-row{position:relative;isolation:isolate}
#page-events .ev-list .ev-row:hover,#page-events .ev-list .ev-row:focus-within{border-top-color:transparent;z-index:auto}
#page-events .ev-list .ev-row::before{content:"";position:absolute;left:-1px;right:-1px;top:-2px;height:3px;border-radius:12px 12px 0 0;background-image:var(--event-flyer-art);background-size:100% auto;background-position:center 35%;opacity:0;pointer-events:none;transition:opacity 200ms ease}
#page-events .ev-list .ev-row:hover::before,#page-events .ev-list .ev-row:focus-within::before{opacity:1}
@media(prefers-reduced-motion:reduce){#page-events .ev-list .ev-row::before{transition:none}}


/* Seamless artwork rim: follow the existing card curvature. */
#page-events .ev-list .ev-row::before{inset:-1px;top:-1px;height:auto;border-radius:inherit;box-sizing:border-box;padding:2px;border:0;background-image:var(--event-flyer-art);background-size:100% auto;background-position:center 35%;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;clip-path:inset(0 0 calc(100% - 13px) 0);opacity:0;transition:opacity 300ms ease;pointer-events:none}
#page-events .ev-list .ev-row:hover::before,#page-events .ev-list .ev-row:focus-within::before{opacity:.85}
@media(prefers-reduced-motion:reduce){#page-events .ev-list .ev-row::before{transition:none}}


/* Remove the old mobile month divider above the rounded event card. */
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {#page-events .ev-list .ev-month-heading{border-bottom:0}#page-events .ev-list{border-top:0}}


/* Give the flyer artwork more presence; keep desktop actions in ink. */
#page-events .ev-list .ev-row::before{padding:5px;clip-path:inset(0 0 calc(100% - 18px) 0)}
@media(min-width:701px){
#page-events .ev-actions .btn-primary,#page-events .ev-actions .btn-primary.sans{background:#1e1e1e;color:#fff;border:1px solid #1e1e1e;transition:background 220ms ease,color 220ms ease,border-color 220ms ease}
#page-events .ev-actions .btn-primary:hover,#page-events .ev-actions .btn-primary.sans:hover{background:#fff;color:#1e1e1e;border-color:#1e1e1e}
#page-events .ev-actions .btn-outline-ink,#page-events .ev-actions .ev-share{color:#1e1e1e;border-color:#1e1e1e}
#page-events .ev-actions .btn-outline-ink:hover,#page-events .ev-actions .ev-share:hover{background:#1e1e1e;color:#fff;border-color:#1e1e1e}
}


/* A restrained top artwork edge, with a hold-to-open outline. */
#page-events .ev-list .ev-row::before{padding:4px;clip-path:inset(0 0 calc(100% - 10px) 0)}
#page-events .ev-list .ev-row .ev-hold-rim{position:absolute;inset:-1px;width:calc(100% + 2px);height:calc(100% + 2px);overflow:visible;pointer-events:none;opacity:0;transition:opacity 180ms ease;z-index:2}
#page-events .ev-list .ev-row.ev-holding .ev-hold-rim{opacity:1}
#page-events .ev-hold-rim rect{fill:none;stroke:#1e1e1e;stroke-width:2;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100}
#page-events .ev-list .ev-row.ev-holding{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}


/* The progressing outline is the flyer artwork itself. */
#page-events .ev-hold-rim rect{stroke-width:4;stroke-linecap:butt}


/* Continue the hold trace at the right end of the existing top edge. */
#page-events .ev-hold-rim path{fill:none;stroke-width:4;stroke-linecap:butt;stroke-dasharray:100;stroke-dashoffset:100}
#page-events .ev-list .ev-row::before{clip-path:inset(0 0 calc(100% - 13px) 0)}


/* One shared artwork surface for the fixed edge and its continuation. */
#page-events .ev-list .ev-row::before{display:none}
#page-events .ev-list .ev-row .ev-hold-rim{opacity:1}
#page-events .ev-hold-rim path{opacity:0;transition:opacity 200ms ease;stroke-width:4;stroke-linecap:butt}
#page-events .ev-hold-rim .ev-top-art{stroke-dasharray:none;stroke-dashoffset:0}
#page-events .ev-list .ev-row:hover .ev-top-art,#page-events .ev-list .ev-row:focus-within .ev-top-art,#page-events .ev-list .ev-row.ev-holding .ev-hold-rim path{opacity:1}


/* Keep the four-pixel artwork rim evenly inside the card boundary. */
#page-events .ev-list .ev-row .ev-hold-rim{inset:0;width:100%;height:100%;overflow:hidden;border-radius:inherit}
#page-events .ev-hold-rim path{stroke-width:4;vector-effect:non-scaling-stroke;stroke-linejoin:round}


/* More comfortable event actions with a quiet gray secondary choice. */
#page-events .ev-list .ev-row .ev-actions > .btn-primary,#page-events .ev-list .ev-row .ev-actions > .btn-outline-ink,#page-events .ev-list .ev-row .ev-actions > .ev-share{display:inline-flex;align-items:center;justify-content:center;min-height:40px;height:40px;padding:9px 13px;font:13px/1.2 Arial,sans-serif;box-sizing:border-box;white-space:nowrap;transition:background 220ms ease,color 220ms ease,border-color 220ms ease}
#page-events .ev-list .ev-row .ev-actions > .btn-outline-ink{background:#e7e5e1;border-color:#d6d3ce;color:#1e1e1e}
#page-events .ev-list .ev-row .ev-actions > .btn-outline-ink:hover{background:#1e1e1e;border-color:#1e1e1e;color:#fff}
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
#page-events .ev-list .ev-row .ev-actions{gap:6px}
#page-events .ev-list .ev-row .ev-actions > .ev-share svg{width:15px;height:15px}
}
@media(max-width:360px){
#page-events .ev-list .ev-row .ev-actions > .btn-primary,#page-events .ev-list .ev-row .ev-actions > .btn-outline-ink,#page-events .ev-list .ev-row .ev-actions > .ev-share{padding-left:10px;padding-right:10px;font-size:12px}
}


/* Show the completed artwork circuit before opening any event. */
#page-events .ev-hold-rim path:not(.ev-top-art){transition:none}


/* A small, quiet cue for the hold interaction. */
#page-events .ev-list .ev-row .ev-hold-hint{position:absolute;right:0;top:14px;z-index:3;padding:4px 7px;border:1px solid #d6d3ce;border-right:0;border-radius:3px 0 0 3px;background:#ebe9e5;color:#66635e;font:10px/1.2 Arial,sans-serif;letter-spacing:.01em;white-space:nowrap;pointer-events:none;opacity:0;transform:translateX(6px);transition:opacity 250ms ease,transform 350ms cubic-bezier(.22,1,.36,1)}
@media(hover:hover){#page-events .ev-list .ev-row:hover .ev-hold-hint,#page-events .ev-list .ev-row:focus-within .ev-hold-hint{opacity:1;transform:translateX(0)}}
@media(hover:none){#page-events .ev-list .ev-row .ev-hold-hint{top:5px;font-size:9px;padding:3px 6px;opacity:.8;transform:none}}
#page-events .ev-list .ev-row.ev-holding .ev-hold-hint{opacity:0;transform:translateX(6px)}
@media(prefers-reduced-motion:reduce){#page-events .ev-list .ev-row .ev-hold-hint{transition:none}}


/* Place the hold cue deliberately beside the bottom action row. */
#page-events .ev-list .ev-row .ev-hold-hint{top:auto;bottom:28px;right:0;background:#1e1e1e;color:#fff;border:0;border-radius:3px 0 0 3px;padding:6px 9px;font:10px/1.2 Arial,sans-serif;letter-spacing:.015em}
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {#page-events .ev-list .ev-row .ev-hold-hint{top:auto;bottom:8px;padding:4px 7px;font-size:9px}}
@media(hover:none){#page-events .ev-list .ev-row .ev-hold-hint{opacity:1}}
#page-events .ev-list .ev-row.ev-holding .ev-hold-hint{opacity:0}


/* A small pull-tab tucked beneath the card, clear of its corner. */
#page-events .ev-list .ev-row .ev-hold-hint{top:auto;bottom:-15px;right:22px;z-index:0;padding:7px 10px 5px;background:#1e1e1e;color:#fff;border:0;border-radius:0 0 4px 4px;font:9px/1.2 Arial,sans-serif;letter-spacing:.025em;box-shadow:0 2px 3px rgba(26,26,26,.08);transform:translateY(-7px);opacity:0;transition:opacity 220ms ease,transform 350ms cubic-bezier(.22,1,.36,1);clip-path:inset(3px 0 0 0)}
@media(hover:hover){#page-events .ev-list .ev-row:hover .ev-hold-hint,#page-events .ev-list .ev-row:focus-within .ev-hold-hint{opacity:1;transform:translateY(0)}}
@media(hover:none){#page-events .ev-list .ev-row .ev-hold-hint{bottom:-15px;right:22px;opacity:1;transform:translateY(0)}}
#page-events .ev-list .ev-row.ev-holding .ev-hold-hint{opacity:0;transform:translateY(-7px)}
@media(prefers-reduced-motion:reduce){#page-events .ev-list .ev-row .ev-hold-hint{transition:none}}


/* Integrate the gesture cue as a quiet card instruction. */
#page-events .ev-list .ev-row .ev-hold-hint{top:auto;bottom:10px;right:28px;display:inline-flex;align-items:center;gap:5px;padding:0;border:0;border-radius:0;background:transparent;color:#66635e;box-shadow:none;clip-path:none;transform:none;font:10px/1.3 Arial,sans-serif;letter-spacing:0;opacity:0;transition:opacity 220ms ease}
#page-events .ev-list .ev-row .ev-hold-hint::before{content:"";width:8px;height:8px;border:1px solid currentColor;border-radius:50%;box-sizing:border-box}
@media(hover:hover){#page-events .ev-list .ev-row:hover .ev-hold-hint,#page-events .ev-list .ev-row:focus-within .ev-hold-hint{opacity:.85;transform:none}}
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {#page-events .ev-list .ev-row .ev-hold-hint{bottom:9px;right:18px;font-size:9px}}
@media(hover:none){#page-events .ev-list .ev-row .ev-hold-hint{opacity:.8;transform:none}}
#page-events .ev-list .ev-row.ev-holding .ev-hold-hint{opacity:0;transform:none}


#page-events .ev-list .ev-row .ev-hold-hint::before{width:4px;height:4px;border:0;background:#1e1e1e;border-radius:50%;box-shadow:none}


/* Mobile date and filter drawers. */
.ev-drawer{position:fixed;inset:0 0 0 auto;margin:0;width:min(420px,89vw);height:100dvh;max-width:none;max-height:none;padding:0;border:0;border-radius:0;background:#faf8f4;color:#1e1e1e;overflow:hidden;transform:translateX(100%);transition:transform 320ms cubic-bezier(.22,1,.36,1)}
.ev-drawer[open]{display:flex;flex-direction:column}.ev-drawer.is-open{transform:translateX(0)}
.ev-drawer::backdrop{background:rgba(0,0,0,.36)}
.ev-drawer-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px 22px 18px;border-bottom:1px solid #ddd9d2;flex-shrink:0}
.ev-drawer-head h2{margin:0;font:600 25px/1.2 Georgia,serif;letter-spacing:-.02em}
.ev-drawer-close{width:44px;height:44px;display:grid;place-items:center;border:0;background:transparent;color:#1e1e1e;cursor:pointer;flex-shrink:0}
.ev-drawer-close svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.5}
.ev-drawer-body{overflow-y:auto;overscroll-behavior:contain;flex:1;padding:20px 22px 28px;min-height:0}
.ev-drawer [hidden]{display:none!important}
.ev-calendar-note,.ev-filter-context{font:12px/1.55 Arial,sans-serif;color:#68645e;margin:0 0 24px}
.ev-calendar-month{margin-bottom:32px}.ev-calendar-month h3{font:600 23px/1.2 Georgia,serif;margin:0 0 19px}
.ev-calendar-weekdays,.ev-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center;gap:4px}
.ev-calendar-weekdays{border-bottom:1px solid #ddd9d2;padding-bottom:12px;margin-bottom:8px;font:600 10px/1.2 Arial,sans-serif;text-transform:uppercase}
.ev-calendar-grid button{position:relative;min-height:40px;aspect-ratio:1;border:1px solid transparent;border-radius:50%;padding:0;background:transparent;color:#1e1e1e;font:15px Arial,sans-serif;cursor:pointer}
.ev-calendar-grid button:not(:disabled)::after{content:"";position:absolute;bottom:4px;left:calc(50% - 2px);width:4px;height:4px;background:currentColor;border-radius:50%}
.ev-calendar-grid button:disabled{color:#ccc8c1;cursor:default}.ev-calendar-grid button:not(:disabled):hover{border-color:#1e1e1e}
.ev-calendar-grid button[aria-pressed="true"]{background:#1e1e1e;color:#fff}
.ev-drawer-filters details{border-top:1px solid #ddd9d2;border-bottom:1px solid #ddd9d2}
.ev-drawer-filters summary{list-style:none;display:flex;justify-content:space-between;align-items:center;min-height:64px;cursor:pointer;font:600 18px Arial,sans-serif}
.ev-drawer-filters summary::-webkit-details-marker{display:none}.ev-drawer-filters summary span::after{content:"+";font:28px Arial,sans-serif}.ev-drawer-filters details[open] summary span::after{content:"−"}
.ev-filter-choices{display:grid;gap:4px;padding:0 0 17px}.ev-filter-choices label{display:flex;align-items:center;gap:12px;min-height:44px;font:15px Arial,sans-serif;cursor:pointer}.ev-filter-choices input{width:18px;height:18px;accent-color:#1e1e1e}
.ev-filter-context{margin-top:22px}
.ev-drawer-footer{padding:15px 22px max(22px,env(safe-area-inset-bottom));border-top:1px solid #ddd9d2;background:#faf8f4;display:grid;gap:10px;flex-shrink:0}
.ev-drawer-clear{justify-self:start;min-height:36px;border:0;background:transparent;color:#1e1e1e;padding:0;font:12px Arial,sans-serif;text-decoration:underline;cursor:pointer}.ev-drawer-clear:disabled{opacity:.4;cursor:default}
.ev-drawer-apply{min-height:48px;width:100%;border:1px solid #1e1e1e;border-radius:4px;background:#1e1e1e;color:#fff;font:600 14px Arial,sans-serif;cursor:pointer;transition:background 200ms ease,color 200ms ease}.ev-drawer-apply:hover{background:#fff;color:#1e1e1e}
.ev-drawer button:focus-visible,.ev-drawer summary:focus-visible{outline:2px solid #1e1e1e;outline-offset:3px}
@media(prefers-reduced-motion:reduce){.ev-drawer{transition:none}}


/* Keep the search affordance clear at every screen size. */
#page-events .ev-discovery label[for="performanceSearch"]{position:relative}
#page-events .ev-discovery label[for="performanceSearch"]::after{content:"";position:absolute;right:16px;bottom:14px;width:21px;height:21px;pointer-events:none;background:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231e1e1e' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='7.2'/%3E%3Cpath d='m16 16 5 5'/%3E%3C/svg%3E")}
#page-events .ev-discovery #performanceSearch{padding-right:48px;-webkit-appearance:none;appearance:none}
#page-events .ev-discovery #performanceSearch::-webkit-search-cancel-button{margin-right:8px}


/* One event search and discovery system across screen sizes. */
#page-events .ev-discovery{grid-template-columns:minmax(0,1fr);gap:0}
#page-events .ev-discovery label{font:12px/1.4 Arial,sans-serif;color:#1e1e1e}
#page-events .ev-discovery label[for="performanceMonth"]{display:none}
#page-events .ev-discovery #performanceSearch{box-sizing:border-box;width:100%;height:52px;min-height:52px;padding:13px 50px 13px 16px;margin-top:7px;border:1px solid #d6d3ce;border-radius:6px;background:#fff;color:#1e1e1e;font:16px/1.4 Arial,sans-serif;box-shadow:none}
#page-events .ev-discovery label[for="performanceSearch"]::after{bottom:15px}
#page-events .ev-discovery #performanceSearch:focus{outline:0;border-color:#1e1e1e;box-shadow:0 0 0 1px #1e1e1e}
#page-events .ev-mobile-controls{display:block;margin-top:18px}
#page-events .ev-control-row{display:flex;justify-content:space-between;gap:16px;border-top:1px solid #d6d3ce;border-bottom:1px solid #d6d3ce;padding:8px 0}
#page-events .ev-control-row button{display:flex;align-items:center;gap:10px;min-height:48px;padding:6px 0;border:0;background:transparent;color:#1e1e1e;font:600 13px Arial,sans-serif;text-transform:uppercase;letter-spacing:.025em;cursor:pointer}
#page-events .ev-control-row svg{width:22px;height:22px;flex-shrink:0}
#page-events .ev-control-row button.is-active span{border-bottom:1px solid #1e1e1e}
#page-events .ev-control-row button:focus-visible{outline:2px solid #1e1e1e;outline-offset:3px}
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
#page-events .ev-wrap > .ev-next{grid-template-columns:88px minmax(0,1fr);gap:18px;padding:20px;border-radius:12px;background:#1e1e1e;margin-bottom:28px}
#page-events .ev-wrap .ev-next-flyer{width:88px;border-radius:4px;background:#f2f0ec;padding:3px;box-sizing:border-box}
#page-events .ev-wrap .ev-next-flyer img{width:82px;height:116px;object-fit:contain}
#page-events .ev-wrap .ev-next-label{color:rgba(255,255,255,.72);font:600 10px/1.2 Arial,sans-serif;letter-spacing:.12em;margin-bottom:8px}
#page-events .ev-wrap .ev-next-title{font:400 22px/1.15 Georgia,serif;letter-spacing:-.02em;color:#fff;margin-bottom:9px}
#page-events .ev-wrap .ev-next-when{font:12px/1.5 Arial,sans-serif;color:rgba(255,255,255,.72);margin-bottom:14px}
#page-events .ev-wrap .ev-next .btn-primary{min-height:38px;padding:8px 12px;border:1px solid #fff;border-radius:5px;background:#fff;color:#1e1e1e;font:13px/1.2 Arial,sans-serif}
#page-events .ev-wrap .ev-next .btn-primary:hover{background:transparent;color:#fff}
}
@media(max-width:360px){#page-events .ev-wrap > .ev-next{gap:14px;padding:16px;grid-template-columns:76px minmax(0,1fr)}#page-events .ev-wrap .ev-next-flyer{width:76px}#page-events .ev-wrap .ev-next-flyer img{width:70px;height:102px}#page-events .ev-wrap .ev-next-title{font-size:20px}}


/* Match the desktop next-up action to the event button system. */
@media(min-width:701px){
#page-events .ev-wrap .ev-next .btn-primary.sans{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:9px 16px;border:1px solid #1e1e1e;border-radius:5px;background:#1e1e1e;color:#fff;font:13px/1.2 Arial,sans-serif;transition:background 220ms ease,color 220ms ease,border-color 220ms ease}
#page-events .ev-wrap .ev-next .btn-primary.sans:hover{background:#fff;color:#1e1e1e;border-color:#1e1e1e}
}


/* Refined flyer rim and ivory calendar shortcut. */
#page-events .ev-hold-rim path{stroke-width:2}
.header-links a.header-calendar{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border-radius:5px;background:#1e1e1e;color:#fffef2;transition:background 220ms ease,color 220ms ease}
.header-links a.header-calendar svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.header-links a.header-calendar:hover{background:#fffef2;color:#1e1e1e}
.header-links a.header-calendar:focus-visible{outline:2px solid currentColor;outline-offset:3px}


/* Calendar shortcut: black icon, ivory surface, monochrome inversion. */
header .header-links a.header-calendar{background:#fffef2;color:#1e1e1e;opacity:1;border:1px solid #1e1e1e}
header .header-links a.header-calendar:hover,header .header-links a.header-calendar:focus-visible{background:#1e1e1e;color:#fffef2;opacity:1}


/* Preserve the original ivory-on-charcoal calendar, including hover. */
header .header-links a.header-calendar,header .header-links a.header-calendar:hover,header .header-links a.header-calendar:focus-visible{background:#1e1e1e;color:#fffef2;border-color:#1e1e1e;opacity:1}


/* Calendar bypasses the shared gold navigation hover. */
[id^="page-"] header .header-main nav.header-links a.header-calendar{background:#1e1e1e!important;color:#fffef2!important;border-color:#1e1e1e!important}
[id^="page-"] header .header-main nav.header-links a.header-calendar:hover,[id^="page-"] header .header-main nav.header-links a.header-calendar:focus-visible{background:#fffef2!important;color:#1e1e1e!important;border-color:#fffef2!important}
[id^="page-"] header .header-main nav.header-links a.header-calendar svg{stroke:currentColor!important}


/* Mobile services: contained columns, wrapped labels, consistent tap targets. */
@media (max-width: 860px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
#page-home #categoryNavBar{padding:18px 16px 8px;overflow-x:hidden}
#page-home #categoryNavBar .category-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;min-width:0;gap:8px 10px;justify-items:stretch;align-items:stretch}
#page-home #categoryNavBar .category-item{width:100%;min-width:0;min-height:100px;padding:10px 4px 12px;gap:9px;justify-content:flex-start;box-sizing:border-box}
#page-home #categoryNavBar .category-label.sans{display:block;width:100%;min-width:0;white-space:normal;overflow-wrap:normal;font-size:12px;line-height:1.35;text-align:center}
#page-home #categoryNavBar .category-icon{width:32px;height:32px;flex-shrink:0}
#page-home #categoryNavBar .category-icon svg{width:26px;height:26px}
#page-home .category-accordion-toggle{min-height:56px;padding:16px 20px;gap:16px;text-align:left}
#page-home .category-accordion-toggle .chevron{flex-shrink:0}
}
@media(max-width:360px){
#page-home #categoryNavBar{padding-left:12px;padding-right:12px}
#page-home #categoryNavBar .category-row{gap:6px}
#page-home #categoryNavBar .category-label.sans{font-size:11px}
}


/* Compact mobile footer, with accessible expandable link groups. */
.fc-footer-toggle{display:none}
@media (max-width: 860px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
[id^="page-"] footer{padding:36px 24px 24px}
[id^="page-"] footer .footer-top{gap:24px}
[id^="page-"] footer .fc-footer-expandable{border-bottom:1px solid rgba(255,255,255,.16)}
[id^="page-"] footer .fc-footer-expandable>.col-title{display:none}
[id^="page-"] footer .fc-footer-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:52px;padding:12px 0;border:0;background:transparent;color:var(--gold);font:13px/1.4 Arial,sans-serif;letter-spacing:.1em;text-align:left;cursor:pointer}
.fc-footer-toggle::after{content:'';width:8px;height:8px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);transition:transform 300ms ease;margin-right:4px}
.fc-footer-toggle[aria-expanded="true"]::after{transform:rotate(225deg)}
.fc-footer-links{display:grid;grid-template-rows:0fr;transition:grid-template-rows 350ms ease}
.fc-footer-expandable.is-open .fc-footer-links{grid-template-rows:1fr}
.fc-footer-links>div{min-height:0;overflow:hidden;visibility:hidden;transition:visibility 350ms}
.fc-footer-expandable.is-open .fc-footer-links>div{visibility:visible}
[id^="page-"] footer .fc-footer-links a{display:block;padding:9px 0;margin:0;min-height:40px;box-sizing:border-box}
[id^="page-"] footer .footer-bottom{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin-top:28px;padding-top:20px}
[id^="page-"] footer .footer-bottom span{font-size:11px;line-height:1.5;max-width:100%}
#page-home .offer-bar{padding:12px 16px calc(12px + env(safe-area-inset-bottom));gap:10px}
#page-home .offer-bar .headline{font-size:14px;line-height:1.3}
#page-home .offer-bar .sub{display:none}
#page-home .offer-bar .right{display:flex;align-items:center;gap:8px;width:100%;min-width:0}
#page-home .offer-bar .offer-btn.sans{display:flex;align-items:center;justify-content:center;flex:1;min-width:0;min-height:42px;padding:8px 10px;font-size:12px;line-height:1.2;white-space:normal}
#page-home .offer-bar .offer-close{width:36px;height:36px;min-width:36px;flex:0 0 36px;font-size:20px}
}
@media(prefers-reduced-motion:reduce){.fc-footer-links,.fc-footer-toggle::after{transition:none}}


/* Center mobile piano cards and show swipe position. */
.fc-size-swipe-cue{display:none}
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
:is(#page-grand,#page-category) .gd-size-row{display:flex;gap:14px;margin-left:-24px;margin-right:-24px;padding:0 10% 10px;scroll-padding-inline:10%;scroll-snap-type:x mandatory;box-sizing:border-box;scrollbar-width:none}
:is(#page-grand,#page-category) .gd-size-row::-webkit-scrollbar{display:none}
:is(#page-grand,#page-category) .gd-size-row .gd-size-card{flex:0 0 100%;min-width:0;scroll-snap-align:center}
.fc-size-swipe-cue{display:flex;flex-direction:column;align-items:center;gap:8px;margin:18px auto 0;color:var(--page-text-secondary);font:10px/1.4 Arial,sans-serif;letter-spacing:.06em}
.fc-size-swipe-track{display:block;width:96px;height:3px;border-radius:3px;background:rgba(150,140,125,.22);overflow:hidden}
.fc-size-swipe-thumb{display:block;width:24px;height:3px;border-radius:3px;background:var(--gold);transform:translateX(var(--swipe-position,0px))}
}


/* Video topics share the centered mobile swipe treatment. */
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
[id^="page-"] .gd-video-grid{display:flex;gap:14px;margin-left:-24px;margin-right:-24px;padding:0 10% 10px;scroll-padding-inline:10%;scroll-snap-type:x mandatory;box-sizing:border-box;scrollbar-width:none}
[id^="page-"] .gd-video-grid::-webkit-scrollbar{display:none}
[id^="page-"] .gd-video-grid .gd-video-card{flex:0 0 100%;min-width:0;scroll-snap-align:center}
.gd-video-grid[hidden]+.fc-size-swipe-cue{display:none}
}


/* Apply mobile centering to every generated collection row. */
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
[id^="page-"] .gd-size-row{display:flex;gap:14px;margin-left:-24px;margin-right:-24px;padding:0 10% 10px;scroll-padding-inline:10%;scroll-snap-type:x mandatory;box-sizing:border-box;scrollbar-width:none}
[id^="page-"] .gd-size-row::-webkit-scrollbar{display:none}
[id^="page-"] .gd-size-row .gd-size-card{flex:0 0 100%;min-width:0;scroll-snap-align:center}
}


.fc-teacher-more{display:none}
@media (max-width: 860px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
#page-lessons .ls-teacher-grid{display:flex;gap:14px;margin-inline:-24px;padding:0 10% 10px;scroll-padding-inline:10%;scroll-snap-type:x mandatory;box-sizing:border-box;scrollbar-width:none;align-items:flex-start}
#page-lessons .ls-teacher-grid::-webkit-scrollbar{display:none}
#page-lessons .ls-teacher-grid .ls-teacher{flex:0 0 100%;min-width:0;scroll-snap-align:center}
#page-lessons .ls-teacher-photo{aspect-ratio:4/3;height:auto;overflow:hidden}
#page-lessons .ls-teacher-photo img{width:100%;height:100%;object-fit:cover}
#page-lessons .fc-teacher-more{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 0;border:0;background:transparent;color:var(--page-text);font:12px/1.3 Arial,sans-serif;cursor:pointer}
.fc-teacher-more::after{content:'+';font-size:17px}
.fc-teacher-more[aria-expanded="true"]::after{content:'−'}
.fc-teacher-extra{display:grid;grid-template-rows:0fr;transition:grid-template-rows 350ms ease}
.fc-teacher-extra>div{min-height:0;overflow:hidden;visibility:hidden;transition:visibility 350ms}
.ls-teacher.is-expanded .fc-teacher-extra{grid-template-rows:1fr}
.ls-teacher.is-expanded .fc-teacher-extra>div{visibility:visible}
#page-lessons .fc-teacher-extra .ls-teacher-meta{margin-top:0;border-top:0;padding-top:0}
#page-lessons .ls-teacher-actions{margin-top:16px}
#page-lessons .fc-size-swipe-cue{display:flex}
}
@media(prefers-reduced-motion:reduce){.fc-teacher-extra{transition:none}}


/* Ivory teacher network action on charcoal. */
#page-lessons .ls-network .ls-btn-gold{background:#f2f0ec;color:#1e1e1e;border-color:#f2f0ec;outline-color:#f2f0ec;transition:background 240ms ease,color 240ms ease}
#page-lessons .ls-network .ls-btn-gold:hover{background:#fff;color:#1e1e1e}
#page-lessons .ls-network .ls-btn-gold:focus-visible{outline:2px solid #f2f0ec;outline-offset:4px}
#page-lessons .ls-network .ls-btn-gold .cat-btn-arrow{background:#1e1e1e}
#page-lessons .ls-network .ls-btn-gold .cat-btn-arrow svg{stroke:#f2f0ec}


/* Panels reserve their own space rather than covering the next step. */
#page-financing .fn-steps .fn-interactive-step .fn-video-reveal{position:relative;top:auto;left:auto;right:auto;z-index:1;display:grid;grid-template-rows:0fr;opacity:1;visibility:visible;transform:none;pointer-events:none;margin:0;transition:grid-template-rows 420ms cubic-bezier(.22,1,.36,1),margin 420ms cubic-bezier(.22,1,.36,1)}
#page-financing .fn-video-inner{min-height:0;overflow:hidden;visibility:hidden;transition:visibility 420ms}
#page-financing .fn-interactive-step.is-engaged .fn-video-reveal{grid-template-rows:1fr;margin-top:16px;pointer-events:auto}
#page-financing .fn-interactive-step.is-engaged .fn-video-inner{visibility:visible}
#page-financing .fn-video-panel{border-radius:8px;padding:14px 16px}
@media (max-width: 860px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
[id^="page-"] header .mobile-nav-panel a{color:#f2f0ec!important;opacity:1!important;visibility:visible}
[id^="page-"] header .mobile-nav-panel a:hover{color:#fff!important}
#page-rentals .rentals-row:not(.rentals-head){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px 16px;padding:20px}
#page-rentals .rentals-row .rentals-cell:nth-child(2){justify-self:end}
#page-rentals .rentals-row .rentals-cell:nth-child(3),#page-rentals .rentals-row .rentals-cell:nth-child(4){font-size:20px}
#page-rentals .rentals-row .rentals-cell:nth-child(3)::before,#page-rentals .rentals-row .rentals-cell:nth-child(4)::before{display:block;font:11px/1.4 Arial,sans-serif;color:#66635e;margin-bottom:4px}
#page-rentals .rentals-row .rentals-cell:nth-child(3)::before{content:'Weekly rate'}
#page-rentals .rentals-row .rentals-cell:nth-child(4)::before{content:'Monthly rate'}
#page-rentals .rentals-head{display:none}
#page-rentals .fc-rental-steps{grid-template-columns:1fr!important;gap:24px!important}
#page-rentals .fc-rental-steps>div{display:grid;grid-template-columns:32px minmax(0,1fr);gap:6px 16px;padding-bottom:24px;border-bottom:1px solid #d6d3ce}
#page-rentals .fc-rental-steps>div>div:first-child{grid-row:1/3;margin:0!important}
#page-rentals .fc-rental-steps h3{margin:0!important}
#page-rentals .fc-rental-steps p{grid-column:2}
#page-rentals .fc-rental-steps>div:last-child{border-bottom:0}
#page-financing .fn-steps{row-gap:20px}
}
@media(prefers-reduced-motion:reduce){#page-financing .fn-steps .fn-interactive-step .fn-video-reveal,#page-financing .fn-video-inner{transition:none}}


/* Shorter mobile heroes and grouped rental price comparison. */
.fc-rental-pricing,.fc-rental-pricing-cue{display:none}
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
#page-events .ev-hero{min-height:345px;padding:32px 20px;box-sizing:border-box}
#page-events .ev-hero h1{font-size:32px;margin-bottom:14px}
#page-events .ev-hero .ev-lede{font-size:15px;line-height:1.55}
#page-events .ev-hero-photo{object-position:center 50%}
#page-rentals .story-hero{height:42vh;min-height:300px;max-height:380px;box-sizing:border-box}
#page-rentals .story-hero-content{padding:24px}
#page-rentals .story-hero h1{font-size:36px;line-height:1.12}
#page-rentals .rentals-table-wrap{padding-left:24px;padding-right:24px}
#page-rentals .rentals-table{display:none}
#page-rentals .fc-rental-pricing{display:flex;gap:14px;margin-inline:-24px;padding:0 10% 8px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:10%;scrollbar-width:none}
.fc-rental-pricing::-webkit-scrollbar{display:none}
.fc-rental-price-card{flex:0 0 100%;min-width:0;box-sizing:border-box;scroll-snap-align:center;background:#faf8f4;border:1px solid #d6d3ce;border-radius:12px;padding:24px}
.fc-rental-price-card h3{font:26px/1.2 Georgia,serif;margin:0 0 24px;color:#1e1e1e}
.fc-rental-price-card section+section{border-top:1px solid #d6d3ce;margin-top:22px;padding-top:22px}
.fc-rental-price-card h4{font:12px/1.4 Arial,sans-serif;letter-spacing:.04em;margin:0 0 14px;color:#66635e}
.fc-rental-price-card dl{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0}
.fc-rental-price-card dt{font:11px/1.4 Arial,sans-serif;color:#66635e;margin-bottom:6px}
.fc-rental-price-card dd{font:25px/1.2 Georgia,serif;color:#1e1e1e;margin:0}
#page-rentals .fc-rental-pricing-cue{display:flex;margin-bottom:24px}
}


/* Compact mobile rental introduction and clearly grouped pricing. */
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
#page-rentals .fc-rental-intro{padding:38px 24px 30px!important}
#page-rentals .fc-rental-intro h2{font-size:28px!important;line-height:1.16!important;margin-bottom:16px!important}
#page-rentals .fc-rental-intro p{font-family:Arial,sans-serif!important;font-size:15px!important;line-height:1.6!important}
#page-rentals .fc-rental-intro>div>div{font-family:Arial,sans-serif!important;font-size:10px!important;color:#66635e!important;margin-bottom:12px!important}
#page-rentals .fc-rental-price-card{padding:0 20px 20px;overflow:hidden;border-radius:10px}
#page-rentals .fc-rental-price-card h3{margin:0 -20px 20px;padding:14px 20px;background:#242424;color:#fffef2;font-size:23px;line-height:1.2;border-bottom:2px solid #b69a62}
#page-rentals .fc-rental-price-card h4{display:inline-block;margin:0 0 12px;padding:4px 8px;background:#ece8df;color:#393630;border-radius:3px;font-size:11px;font-weight:600;letter-spacing:.02em}
#page-rentals .fc-rental-price-card section+section{margin-top:17px;padding-top:17px}
#page-rentals .fc-rental-price-card dt{font-size:12px;color:#595650;margin-bottom:5px}
#page-rentals .fc-rental-price-card dd{font-family:Arial,sans-serif;font-size:24px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.03em}
#page-rentals .rentals-table-wrap{padding-top:10px;padding-bottom:28px}
#page-rentals .fc-rental-pricing-cue{margin-top:15px;margin-bottom:18px}
}


@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
#page-rentals .fc-rental-price-card section:first-of-type h4{background:#e9dfc8;color:#504021;border:1px solid #c9b582}
#page-rentals .fc-rental-price-card section:last-of-type h4{background:#303030;color:#fffef2;border:1px solid #303030}
}


/* Mobile flow: one quiet offer, compact process cards, viewport-driven sketches. */
@media (max-width: 860px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
#promoModal{display:none!important}
#page-financing .fn-process,#page-financing .fn-questions,#page-financing .fn-faq-section,#page-financing .fn-close{padding:40px 24px}
#page-financing .fn-steps{margin-top:26px;gap:16px}
#page-financing .fn-steps .fn-interactive-step{padding:24px;min-height:0}
#page-financing .fn-step-title{margin:20px 0 10px;font-size:24px;line-height:1.2}
#page-financing .fn-step-copy{font-size:16px;line-height:1.55}
#page-financing .fn-facts .fn-drawer{opacity:.85;transform:none}
}
#offerBar{will-change:transform;backface-visibility:hidden}


/* Event details: flyer preview, quiet expandable information, balanced actions. */
#performanceDetail.ev-detail{width:calc(100% - 32px);max-width:680px;max-height:calc(100dvh - 32px);padding:0;border:0;border-radius:12px;background:#f2f0ec;color:#1e1e1e;overflow-y:auto;overscroll-behavior:contain}
#performanceDetail .ev-detail-close{position:absolute;top:12px;right:12px;z-index:3;width:44px;height:44px;padding:12px;border:1px solid #d4d1cb;border-radius:50%;background:#f2f0ec;color:#1e1e1e;display:grid;place-items:center;cursor:pointer}
#performanceDetail .ev-detail-close svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8}
#performanceDetail .ev-detail-close:hover{background:#1e1e1e;color:#fff}
#performanceDetail .ev-detail-close:focus-visible,#performanceDetail .ev-detail-toggle:focus-visible{outline:2px solid #1e1e1e;outline-offset:3px}
#performanceDetail .ev-detail-art{margin:0;padding:20px 64px;background:#e7e4de;border:0}
#performanceDetail .ev-detail-photo{display:block;width:100%;height:300px;max-height:none;object-fit:contain;border-radius:0}
#performanceDetail .ev-detail-layout{display:block;padding:28px 28px 0;gap:0;border:0}
#performanceDetail .kicker{font:11px/1.4 Arial,sans-serif;letter-spacing:.09em;color:#66635e;margin-bottom:10px}
#performanceDetail h2{font:400 32px/1.12 Georgia,serif;letter-spacing:-.025em;margin:0 0 16px}
#performanceDetail .ev-when{font:14px/1.5 Arial,sans-serif;color:#45433e;margin:0 0 10px}
#performanceDetail p{font:15px/1.6 Arial,sans-serif;color:#45433e;margin:0 0 14px}
#performanceDetail .ev-detail-venue{padding-bottom:16px;border-bottom:1px solid #d4d1cb}
#performanceDetail #performanceDescription{margin:18px 0 24px}
#performanceDetail .ev-detail-accordion{border-top:1px solid #d4d1cb}
#performanceDetail .ev-detail-accordion:last-child{border-bottom:1px solid #d4d1cb}
#performanceDetail .ev-detail-toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:56px;padding:16px 0;border:0;background:transparent;color:#1e1e1e;text-align:left;font:600 15px/1.4 Arial,sans-serif;cursor:pointer}
#performanceDetail .ev-detail-toggle::after{content:'';width:7px;height:7px;flex:0 0 7px;margin-right:4px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);transition:transform .3s ease}
#performanceDetail .is-open .ev-detail-toggle::after{transform:rotate(225deg)}
#performanceDetail .ev-detail-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .36s cubic-bezier(.22,1,.36,1)}
#performanceDetail .is-open .ev-detail-panel{grid-template-rows:1fr}
#performanceDetail .ev-detail-panel-inner{min-height:0;overflow:hidden;visibility:hidden;transition:visibility .36s}
#performanceDetail .is-open .ev-detail-panel-inner{visibility:visible}
#performanceDetail .ev-detail-panel ul{list-style:none;padding:0 0 18px;margin:0;font:14px/1.6 Arial,sans-serif;color:#45433e}
#performanceDetail .ev-detail-panel li+li{margin-top:8px}
#performanceDetail .ev-detail-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;padding:24px 28px 28px;margin:0;border:0}
#performanceDetail .ev-detail-actions>a,#performanceDetail .ev-detail-actions>button{box-sizing:border-box;display:flex;align-items:center;justify-content:center;gap:8px;min-width:0;width:100%;height:48px;margin:0;padding:10px 12px;border:1px solid #1e1e1e;border-radius:6px;font:600 14px/1.2 Arial,sans-serif;text-decoration:none;cursor:pointer;transition:background .2s,color .2s}
#performanceDetail .ev-detail-actions .btn-primary{background:#1e1e1e;color:#fffef2}
#performanceDetail .ev-detail-actions .ev-share,#performanceDetail .ev-detail-actions .ev-detail-flyer{background:transparent;color:#1e1e1e}
#performanceDetail .ev-detail-actions .ev-detail-flyer{grid-column:1/-1}
#performanceDetail .ev-detail-actions .btn-primary:hover{background:#fffef2;color:#1e1e1e}
#performanceDetail .ev-detail-actions .ev-share:hover,#performanceDetail .ev-detail-actions .ev-detail-flyer:hover{background:#1e1e1e;color:#fffef2}
#performanceDetail .ev-share svg{width:18px;height:18px;flex:0 0 18px}
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
#performanceDetail.ev-detail{width:calc(100% - 24px);max-height:calc(100dvh - 24px);border-radius:10px}
#performanceDetail .ev-detail-art{padding:18px 58px}
#performanceDetail .ev-detail-photo{height:250px}
#performanceDetail .ev-detail-layout{padding:24px 20px 0}
#performanceDetail h2{font-size:28px}
#performanceDetail .ev-detail-actions{padding:20px}
}
@media(prefers-reduced-motion:reduce){#performanceDetail .ev-detail-panel,#performanceDetail .ev-detail-panel-inner,#performanceDetail .ev-detail-toggle::after{transition:none}}


/* One header action size and one mobile menu across every page. */
[id^="page-"] header .header-main .header-cta.sans{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;flex:0 0 118px;width:118px;height:40px;min-height:40px;padding:0 12px;font:13px/1 Georgia,serif;letter-spacing:0;white-space:nowrap;border-radius:6px}
@media (max-width: 860px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
[id^="page-"] header .header-main{gap:10px;padding-left:16px;padding-right:16px}
[id^="page-"] header .header-main .header-left{min-width:0;flex:1;gap:0}
[id^="page-"] header .header-main .wordmark{font-size:clamp(17px,4.4vw,24px);white-space:nowrap;letter-spacing:-.035em}
[id^="page-"] header .header-main .header-right{display:flex;align-items:center;gap:8px;flex:0 0 auto;min-width:0}
[id^="page-"] header .header-main .header-cta.sans{width:104px;flex-basis:104px;height:44px;min-height:44px;font-size:12px;padding:0 8px}
[id^="page-"] header .header-main .mobile-menu-toggle{display:flex!important;width:44px;height:44px;min-width:44px;flex:0 0 44px;align-items:center;justify-content:center;border:1px solid #777;background:transparent;color:#fffef2}
[id^="page-"] header .header-main .mobile-menu-toggle svg{width:20px;height:20px;stroke:#fffef2!important}
[id^="page-"] header .mobile-nav-panel{padding:16px 20px max(20px,env(safe-area-inset-bottom));background:#1e1e1e;max-height:calc(100dvh - 100px);overflow-y:auto;gap:0}
[id^="page-"] header .mobile-nav-panel a{box-sizing:border-box;display:flex;align-items:center;min-height:48px;margin:0;padding:12px 0;border:0;font:14px/1.35 Arial,sans-serif;letter-spacing:0;text-decoration:none}
[id^="page-"] header .mobile-nav-panel .fc-menu-browse{position:relative;display:block;min-height:70px;padding:14px 42px 14px 16px;border:1px solid #666;border-radius:6px;margin-bottom:14px}
[id^="page-"] header .fc-menu-browse>span:first-child{display:block;font-size:16px;font-weight:600}
[id^="page-"] header .fc-menu-browse small{display:block;margin-top:5px;font:11px/1.45 Arial,sans-serif;color:#c7c5bf}
[id^="page-"] header .fc-menu-arrow{position:absolute;right:16px;top:23px;font-size:20px}
[id^="page-"] header .fc-menu-primary,[id^="page-"] header .fc-menu-service-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:20px}
[id^="page-"] header .fc-menu-primary>a{border-bottom:1px solid #424242}
[id^="page-"] header .fc-menu-services{margin-top:20px}
[id^="page-"] header .fc-menu-label{font:10px/1.4 Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#b8a071;margin-bottom:6px}
[id^="page-"] header .fc-menu-service-grid>a{font-size:12px;min-height:48px;align-items:center}
[id^="page-"] header .mobile-nav-panel a:focus-visible{outline:2px solid #fffef2;outline-offset:3px}
}
@media(max-width:360px){
[id^="page-"] header .header-main{padding-left:12px;padding-right:12px;gap:6px}
[id^="page-"] header .header-main .header-right{gap:6px}
[id^="page-"] header .header-main .header-cta.sans{width:94px;flex-basis:94px;font-size:11.5px}
[id^="page-"] header .header-main .wordmark{font-size:17px}
}


.fc-mobile-calendar{display:none}
@media (max-width: 860px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
[id^="page-"] header .header-main .header-right{margin-left:0;gap:6px}
[id^="page-"] header .header-main .wordmark{font-size:clamp(16px,4.8vw,23px)}
[id^="page-"] header .header-main .fc-mobile-calendar{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:40px;height:44px;flex:0 0 40px;padding:0;color:#fffef2;background:#1e1e1e;border:1px solid #777;border-radius:6px}
[id^="page-"] header .fc-mobile-calendar svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
[id^="page-"] header .header-main .fc-mobile-calendar:hover,[id^="page-"] header .header-main .fc-mobile-calendar:focus-visible{background:#fffef2;color:#1e1e1e}
[id^="page-"] header .fc-mobile-calendar:focus-visible{outline:2px solid #fffef2;outline-offset:3px}
}
@media(max-width:430px){
[id^="page-"] header .header-main{padding-left:12px;padding-right:12px;gap:6px}
[id^="page-"] header .header-main .wordmark{font-size:18px}
[id^="page-"] header .header-main .header-cta.sans{width:96px;flex-basis:96px}
[id^="page-"] header .header-main .fc-mobile-calendar{width:36px;flex-basis:36px}
[id^="page-"] header .header-main .mobile-menu-toggle{width:40px;min-width:40px;flex-basis:40px}
}
@media(max-width:360px){
[id^="page-"] header .header-main .wordmark{font-size:15px}
[id^="page-"] header .header-main .header-right{gap:4px}
[id^="page-"] header .header-main .header-cta.sans{width:88px;flex-basis:88px;font-size:11px}
}


@media (max-width: 860px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
#page-home .hero-content{display:flex;flex-direction:column;align-items:stretch}
#page-home .hero-content h1{order:1;margin-bottom:16px}
#page-home .hero-content>p{order:2;margin-bottom:22px}
#page-home .hero-actions{order:3;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;width:100%;align-items:stretch}
#page-home .hero-actions>a.sans{box-sizing:border-box;display:flex;align-items:center;justify-content:center;text-align:center;min-width:0;height:48px;min-height:48px;padding:8px 10px;font:13px/1.25 Arial,sans-serif;letter-spacing:0;border-radius:6px}
#page-home .hero-eyebrow{order:4;text-align:center;width:100%;margin:18px 0 0;font:10px/1.5 Arial,sans-serif;letter-spacing:.12em}
}


.fc-book-short{display:none}
@media (max-width: 860px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
[id^="page-"] header .header-main .header-cta.sans{width:64px;flex-basis:64px;font-size:13px}
[id^="page-"] header .header-cta .fc-book-full{display:none}
[id^="page-"] header .header-cta .fc-book-short{display:inline}
}


@media (max-width: 860px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
[id^="page-"] header .fc-menu-arrow{display:flex;align-items:center;justify-content:center;width:20px;height:20px;top:24px}
[id^="page-"] header .fc-menu-arrow svg{width:20px;height:20px}
[id^="page-"] header .header-main{padding-left:16px;padding-right:16px}
[id^="page-"] header .header-main .header-right{gap:10px}
[id^="page-"] header .header-main .fc-mobile-calendar{width:40px;flex-basis:40px;border:0;background:transparent;border-radius:6px}
[id^="page-"] header .fc-mobile-calendar svg{width:25px;height:25px}
#page-home #home-collections{padding:0 24px 28px!important}
#page-home .gallery-intro-block{padding-top:32px}
#page-home .collections{padding:0 24px 48px;gap:16px}
#page-home .collection-tile{width:100%;height:auto;aspect-ratio:16/9}
}
@media(max-width:360px){
[id^="page-"] header .header-main{padding-left:12px;padding-right:12px}
[id^="page-"] header .header-main .header-right{gap:6px}
[id^="page-"] header .header-main .fc-mobile-calendar{width:36px;flex-basis:36px}
}


@media (max-width: 860px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
[id^="page-"] header .mobile-nav-panel .fc-menu-browse{display:flex;align-items:center;min-height:56px;padding:14px 44px 14px 16px}
[id^="page-"] header .fc-menu-browse>span:first-child{font-size:18px}
[id^="page-"] header .fc-menu-arrow{top:18px}
[id^="page-"] header .fc-menu-primary>a{font-size:16px;min-height:52px}
[id^="page-"] header .fc-menu-service-grid{gap:10px}
[id^="page-"] header .fc-menu-service-grid>a{justify-content:center;text-align:center;min-height:48px;padding:10px 12px;border:1px solid #646464;border-radius:6px;font-size:14px;line-height:1.35}
[id^="page-"] header .fc-menu-service-grid>a:last-child{grid-column:1/-1}
[id^="page-"] header .fc-menu-service-grid>a:hover{background:#343434}
[id^="page-"] header .fc-menu-label{margin-bottom:12px;font-size:11px}
}


/* Match the visual height of the mobile actions while retaining a 44px tap target. */
@media (max-width: 860px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
[id^="page-"] header .header-main .header-right{align-items:center}
[id^="page-"] header .header-main .header-cta.sans{position:relative;isolation:isolate;height:44px;min-height:44px;background:transparent!important;border-color:transparent!important;border-radius:6px}
[id^="page-"] header .header-main .header-cta.sans::before{content:'';position:absolute;inset:4px 0;background:#fff;border-radius:6px;z-index:-1;transition:background .2s ease}
[id^="page-"] header .header-main .header-cta.sans:hover{background:transparent!important}
[id^="page-"] header .header-main .header-cta.sans:hover::before{background:#f2f0ec}
[id^="page-"] header .header-main .fc-mobile-calendar{height:44px;align-items:center}
[id^="page-"] header .header-main .mobile-menu-toggle{height:44px;align-items:center}
}


@media (max-width: 860px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
[id^="page-"] header .header-main .mobile-menu-toggle{border-radius:6px}
}


/* Full flyer artwork and consistent collapsed supporting information. */
#performanceDetail .ev-when{color:#1e1e1e;font-weight:500}
#performanceDetail .ev-detail-art{padding:60px 20px 20px}
#performanceDetail .ev-detail-photo{height:auto;max-height:600px;width:100%;object-fit:contain}
#performanceDetail #performanceDescription{margin:0;padding-bottom:10px}
#performanceDetail .ev-detail-venue{margin-bottom:20px}
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
#performanceDetail .ev-detail-art{padding:60px 16px 16px}
#performanceDetail .ev-detail-photo{height:auto;max-height:none;width:100%}
}


/* Avoid the instant gray background swap during the mobile header handoff. */
@media (max-width: 860px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
#page-home header,#page-home header.home-header-collapsed{background:transparent}
#page-home header .header-main{backface-visibility:hidden;transform:translate3d(0,0,0)}
#page-home header.home-header-collapsed .header-main{transform:translate3d(0,-100%,0)}
}


/* Consistent mobile wordmark and clean menu icon on every page. */
@media (max-width: 860px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
[id^="page-"] header .header-main .wordmark{font:400 22px/1.2 Georgia,serif;letter-spacing:-.035em;white-space:nowrap}
[id^="page-"] header .header-main .mobile-menu-toggle{border:0!important;box-shadow:none;background:transparent}
[id^="page-"] header .header-main .mobile-menu-toggle:focus-visible{outline:2px solid #fffef2;outline-offset:2px}
}
@media(max-width:374px){
[id^="page-"] header .header-main .wordmark{font-size:20px}
[id^="page-"] header .header-main{padding-left:12px;padding-right:12px;gap:6px}
[id^="page-"] header .header-main .header-right{gap:6px}
[id^="page-"] header .header-main .fc-mobile-calendar{width:36px;flex-basis:36px}
}
@media(max-width:340px){[id^="page-"] header .header-main .wordmark{font-size:17px}}


@media(max-width:860px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) and (hover:none){
:is(.collection-tile,.gd-size-card,.trend-card,.ev-flyer) img{transition:transform .32s cubic-bezier(.22,1,.36,1),filter .28s ease}
:is(.collection-tile,.gd-size-card,.trend-card,.ev-flyer).fc-touch-pressed img{transform:scale(1.018)!important;filter:brightness(.94)}
}
@media(prefers-reduced-motion:reduce){
:is(.collection-tile,.gd-size-card,.trend-card,.ev-flyer).fc-touch-pressed img{transform:none!important}
:is(.collection-tile,.gd-size-card,.trend-card,.ev-flyer) img{transition:none!important}
}


@media (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
[id^="page-"] header .header-main{min-height:64px;padding-top:10px;padding-bottom:10px}
[id^="page-"] header .mobile-nav-panel{max-height:calc(100dvh - 64px);padding-top:12px;padding-bottom:max(16px,env(safe-area-inset-bottom))}
[id^="page-"] header .mobile-nav-panel .fc-menu-browse{min-height:48px;padding-top:10px;padding-bottom:10px}
[id^="page-"] header .fc-menu-primary>a{min-height:44px;padding-top:10px;padding-bottom:10px}
#page-home .hero{height:auto;min-height:calc(100svh - 64px)}
#page-home .hero-content{padding:28px max(24px,env(safe-area-inset-left)) 28px;max-width:700px}
#page-home .hero h1{font-size:36px}
#page-home .hero p{font-size:16px;line-height:1.5;margin-bottom:18px}
#page-home .hero-actions{max-width:420px}
#page-home .hero-eyebrow{max-width:420px;margin-top:12px}
#page-events .ev-hero{min-height:280px;padding:28px}
#page-rentals .story-hero{height:auto;min-height:250px;max-height:none}
#performanceDetail.ev-detail,#serviceRequest,.restoration-form-card{max-height:calc(100dvh - 16px);overflow-y:auto}
#performanceDetail .ev-detail-photo{height:auto;max-height:240px;object-fit:contain}
.tn-dialog{height:100dvh;overflow-y:auto}
#page-home .offer-bar{padding-top:10px;padding-bottom:max(10px,env(safe-area-inset-bottom));gap:8px}
}


/* Compact event overview with persistent actions and an always-visible close control. */
#performanceDetail.ev-detail{width:min(640px,calc(100vw - 24px));max-width:640px;max-height:calc(100dvh - 24px);padding:0;overflow:hidden;border-radius:12px;background:var(--ivory,#f2f0ec)}
#performanceDetail.ev-detail[open]{display:grid;grid-template-rows:minmax(0,1fr) auto}
#performanceDetail .ev-detail-scroll{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
#performanceDetail .ev-detail-close{position:absolute;top:10px;right:10px;z-index:5;display:grid;place-items:center;width:44px;height:44px;min-height:44px;padding:0;background:#1e1e1e;color:#fff;border:1px solid #fff;border-radius:50%;box-shadow:0 2px 8px #0003}
#performanceDetail .ev-detail-close svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8}
#performanceDetail .ev-detail-art{margin:0;padding:0;background:#e6e4df}
#performanceDetail .ev-detail-photo{display:block;width:100%;height:clamp(110px,22dvh,180px);max-height:180px;object-fit:cover;object-position:center}
#performanceDetail .ev-detail-layout{display:block;padding:18px 22px 0}
#performanceDetail .ev-detail-content{padding:0}
#performanceDetail .kicker{font:500 10px/1.3 Arial,sans-serif;letter-spacing:.12em;margin:0 0 8px;color:#666}
#performanceDetail h2{font:400 28px/1.12 Georgia,serif;margin:0 44px 10px 0;letter-spacing:-.02em}
#performanceDetail .ev-when{font:600 13px/1.45 Arial,sans-serif;color:#1e1e1e;margin:0 0 8px}
#performanceDetail .ev-detail-venue{font:400 12px/1.5 Arial,sans-serif;margin:0 0 14px;color:#575757}
#performanceDetail #performanceExtras{margin:0;border:0}
#performanceDetail .ev-detail-accordion{margin:0;border-top:1px solid #d0cec8}
#performanceDetail .ev-detail-toggle{font:600 14px/1.3 Arial,sans-serif;min-height:44px;padding:12px 0}
#performanceDetail .ev-detail-panel-inner{font:400 14px/1.55 Arial,sans-serif}
#performanceDetail .ev-detail-actions{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0;padding:14px 22px max(14px,env(safe-area-inset-bottom));border-top:1px solid #d0cec8;background:var(--ivory,#f2f0ec);z-index:2}
#performanceDetail .ev-detail-actions>a,#performanceDetail .ev-detail-actions>button{display:flex;align-items:center;justify-content:center;min-width:0;min-height:44px;padding:10px 14px;font:600 14px/1.2 Arial,sans-serif;border-radius:6px;box-sizing:border-box}
#performanceDetail .ev-detail-flyer{grid-column:1/-1}
#performanceDetail .ev-download-status{grid-column:1/-1;font:400 12px/1.4 Arial,sans-serif;margin:2px 0 0;color:#575757}
#performanceDetail .ev-download-status[hidden]{display:none}
#performanceDetail .ev-download-status a{color:#1e1e1e;text-decoration:underline}
@media(max-width:700px){
#performanceDetail .ev-detail-layout{padding:14px 16px 0}
#performanceDetail h2{font-size:25px;margin-bottom:8px}
#performanceDetail .ev-detail-actions{padding-left:16px;padding-right:16px}
}
@media(max-height:500px) and (orientation:landscape){
#performanceDetail .ev-detail-photo{height:110px}
#performanceDetail h2{font-size:23px}
#performanceDetail .ev-detail-actions{padding-top:8px;padding-bottom:8px}
}


#performanceDetail .ev-detail-pair{display:grid;grid-template-columns:1fr 1fr;column-gap:20px;border-top:1px solid #d0cec8}
#performanceDetail .ev-detail-pair .ev-detail-accordion{display:contents}
#performanceDetail .ev-detail-pair .ev-detail-toggle{grid-row:1;border:0}
#performanceDetail .ev-detail-pair .ev-detail-accordion:first-child .ev-detail-toggle{grid-column:1}
#performanceDetail .ev-detail-pair .ev-detail-accordion:last-child .ev-detail-toggle{grid-column:2}
#performanceDetail .ev-detail-pair .ev-detail-panel{grid-column:1/-1;grid-row:2;visibility:hidden}
#performanceDetail .ev-detail-pair .is-open .ev-detail-panel{visibility:visible}
#performanceDetail .ev-detail-pair .ev-detail-panel-inner ul{margin:0;padding:0 0 12px;list-style:none}
#performanceDetail .ev-detail-pair .ev-detail-panel-inner li{margin:0 0 4px}
#performanceDetail .ev-detail-pair .ev-detail-accordion:last-child .ev-detail-panel-inner{padding-left:0}
#performanceDetail .ev-detail-layout .ev-when{margin:0 0 6px}
#performanceDetail .ev-detail-layout h2{margin-bottom:14px}


#performanceDetail .ev-detail-pair .ev-detail-panel{transition:grid-template-rows .36s cubic-bezier(.22,1,.36,1),visibility 0s linear .36s}
#performanceDetail .ev-detail-pair .is-open .ev-detail-panel{transition-delay:0s}
@media(prefers-reduced-motion:reduce){#performanceDetail .ev-detail-pair .ev-detail-panel{transition:none}}


/* A quiet close-control header, separate from the event artwork. */
#performanceDetail.ev-detail[open]{grid-template-rows:56px minmax(0,1fr) auto}
#performanceDetail .ev-detail-chrome{padding:0 20px;display:flex;align-items:center;border-bottom:1px solid #d0cec8;font:500 11px/1.3 Arial,sans-serif;letter-spacing:.08em;color:#666;background:var(--ivory,#f2f0ec)}
#performanceDetail .ev-detail-close{top:6px;right:10px;background:transparent;color:#1e1e1e;border:0;box-shadow:none;border-radius:6px}
#performanceDetail .ev-detail-close:hover{background:#e3e1db;color:#1e1e1e}
#performanceDetail .ev-detail-close:focus-visible{outline:2px solid #1e1e1e;outline-offset:-3px}
/* The chosen detail grows into the whole row; the other recedes offscreen. */
#performanceDetail .ev-detail-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:20px;position:relative;overflow:hidden;transition:grid-template-columns .42s cubic-bezier(.22,1,.36,1),column-gap .42s cubic-bezier(.22,1,.36,1)}
#performanceDetail .ev-detail-pair.artist-open{grid-template-columns:minmax(0,1fr) minmax(0,0fr);column-gap:0}
#performanceDetail .ev-detail-pair.location-open{grid-template-columns:minmax(0,0fr) minmax(0,1fr);column-gap:0}
#performanceDetail .ev-detail-pair .ev-detail-accordion{display:block;min-width:0;border:0;overflow:hidden;transition:opacity .3s ease,transform .42s cubic-bezier(.22,1,.36,1);opacity:1;transform:translateX(0)}
#performanceDetail .ev-detail-pair .ev-detail-accordion:first-child{grid-column:1;grid-row:1}
#performanceDetail .ev-detail-pair .ev-detail-accordion:last-child{grid-column:2;grid-row:1}
#performanceDetail .ev-detail-pair .ev-detail-accordion:first-child.is-away{opacity:0;transform:translateX(-28px);pointer-events:none}
#performanceDetail .ev-detail-pair .ev-detail-accordion:last-child.is-away{opacity:0;transform:translateX(28px);pointer-events:none}
#performanceDetail .ev-detail-pair .ev-detail-toggle{width:100%;white-space:nowrap;text-align:left}
#performanceDetail .ev-detail-pair .ev-detail-panel{grid-column:auto;grid-row:auto;visibility:visible;transition:grid-template-rows .42s cubic-bezier(.22,1,.36,1)}
#performanceDetail .ev-detail-pair .ev-detail-panel-inner{min-width:0;overflow:hidden}
@media(prefers-reduced-motion:reduce){#performanceDetail .ev-detail-pair,#performanceDetail .ev-detail-pair .ev-detail-accordion,#performanceDetail .ev-detail-pair .ev-detail-panel{transition:none}}


/* Full uncropped flyer and a familiar single column of supporting details. */
#performanceDetail .ev-detail-photo{display:block;width:100%;height:auto;max-height:none;object-fit:contain;object-position:center}
#performanceDetail .ev-detail-art{padding:0;margin:0}
#performanceDetail #performanceExtras>.ev-detail-accordion{display:block;width:100%;border-top:1px solid #d0cec8}
#performanceDetail #performanceExtras>.ev-detail-accordion:last-child{border-bottom:1px solid #d0cec8}
#performanceDetail .ev-detail-toggle{width:100%;text-align:left}
#performanceDetail .ev-detail-panel-inner ul{margin:0;padding:0 0 12px 18px}
#performanceDetail .ev-detail-panel-inner li{margin:0 0 5px}
#performanceDetail .ev-detail-layout{padding-bottom:14px}


/* Full flyer viewer with a separate, calm download action. */
.fc-flyer-viewer{width:min(700px,calc(100vw - 24px));max-width:700px;height:calc(100dvh - 24px);max-height:900px;margin:auto;padding:0;border:0;border-radius:12px;background:#f2f0ec;color:#1e1e1e;overflow:hidden}
.fc-flyer-viewer[open]{display:grid;grid-template-rows:52px minmax(0,1fr) auto}
.fc-flyer-viewer::backdrop{background:rgba(0,0,0,.7)}
.fc-flyer-header{display:flex;align-items:center;justify-content:space-between;padding:0 14px 0 20px;border-bottom:1px solid #d0cec8;font:500 11px/1.3 Arial,sans-serif;letter-spacing:.08em;color:#666}
.fc-flyer-header button{width:44px;height:44px;display:grid;place-items:center;padding:0;border:0;border-radius:6px;background:transparent;color:#1e1e1e;cursor:pointer}
.fc-flyer-header button:hover{background:#e3e1db}
.fc-flyer-header svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8}
.fc-flyer-image{min-height:0;padding:16px;overflow:auto;display:flex;align-items:center;justify-content:center;overscroll-behavior:contain}
.fc-flyer-image img{display:block;width:100%;height:100%;object-fit:contain;max-width:100%;max-height:100%}
.fc-flyer-footer{padding:16px 20px max(16px,env(safe-area-inset-bottom));border-top:1px solid #d0cec8;background:#f2f0ec}
.fc-flyer-download{display:block;width:100%;min-height:48px;padding:12px 20px;border:1px solid #1e1e1e;border-radius:6px;background:#1e1e1e;color:#fff;font:600 14px/1.3 Arial,sans-serif;cursor:pointer;transition:background .22s,color .22s}
.fc-flyer-download:hover{background:#f2f0ec;color:#1e1e1e}
.fc-flyer-download:focus-visible,.fc-flyer-header button:focus-visible{outline:2px solid #1e1e1e;outline-offset:3px}
.fc-flyer-footer .ev-download-status{font:400 12px/1.4 Arial,sans-serif;color:#575757;margin:10px 0 0}
.fc-flyer-footer .ev-download-status[hidden]{display:none}
.fc-flyer-footer .ev-download-status a{color:#1e1e1e;text-decoration:underline}
@media(prefers-reduced-motion:reduce){.fc-flyer-download{transition:none}}


/* Horizontal event artwork in More info; full flyer stays in its own viewer. */
#performanceDetail .ev-detail-photo{width:100%;height:clamp(110px,22dvh,180px);max-height:180px;object-fit:cover;object-position:center}
@media(max-height:500px) and (orientation:landscape){#performanceDetail .ev-detail-photo{height:110px}}


/* Roomier desktop event details and consistently aligned accordion copy. */
#performanceDetail .ev-detail-panel-inner{color:#454545;line-height:1.6}
#performanceDetail .ev-detail-panel-inner ul{list-style:none;margin:0;padding:0 0 14px}
#performanceDetail .ev-detail-panel-inner li{margin:0 0 8px;line-height:1.6}
#performanceDetail .ev-detail-panel-inner li:last-child{margin-bottom:0}
#performanceDetail .ev-detail-panel-inner p{margin:0 0 12px;max-width:64ch}
#performanceDetail .ev-detail-panel-inner p:last-child{margin-bottom:0}
#performanceDetail .ev-detail-panel-inner #performanceDescription{margin:0;padding:0 0 14px;max-width:64ch}
@media(min-width:861px) and (min-height:501px){
#performanceDetail.ev-detail{width:min(800px,calc(100vw - 48px));max-width:800px}
#performanceDetail .ev-detail-layout{padding:22px 28px 16px}
#performanceDetail h2{font-size:32px;margin-right:0;margin-bottom:16px}
#performanceDetail .ev-when{font-size:14px}
#performanceDetail .ev-detail-toggle{font-size:15px;min-height:48px;padding:14px 0}
#performanceDetail .ev-detail-panel-inner{font-size:16px}
#performanceDetail .ev-detail-panel-inner li,#performanceDetail .ev-detail-panel-inner p{max-width:64ch}
#performanceDetail .ev-detail-actions{padding-left:28px;padding-right:28px}
}


/* Preserve the complete event banner rather than cropping it to a fixed height. */
#performanceDetail .ev-detail-art{padding:0;margin:0}
#performanceDetail .ev-detail-photo{display:block;width:100%;height:auto;max-height:none;object-fit:contain;object-position:center}


/* Stable modal middle on iOS: avoid intrinsic grid track collapse on expansion. */
#performanceDetail.ev-detail{height:min(860px,calc(100dvh - 24px));max-height:calc(100dvh - 24px);box-sizing:border-box}
#performanceDetail.ev-detail[open]{display:flex;flex-direction:column}
#performanceDetail .ev-detail-chrome{flex:0 0 56px;min-height:56px;box-sizing:border-box}
#performanceDetail .ev-detail-scroll{flex:1 1 0;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overflow-anchor:none}
#performanceDetail .ev-detail-actions{flex:0 0 auto}
#performanceDetail .ev-detail-art,#performanceDetail .ev-detail-layout{flex-shrink:0}


/* Keep actions directly after the details; grow naturally until the viewport limit. */
#performanceDetail.ev-detail{height:auto;max-height:calc(100dvh - 24px)}
#performanceDetail .ev-detail-scroll{flex:0 1 auto;min-height:0}


/* Compact mobile gap above actions, with comfortable touch targets preserved. */
@media(max-width:860px){
#performanceDetail .ev-detail-layout{padding-bottom:8px}
#performanceDetail .ev-detail-actions{padding-top:10px;padding-bottom:max(10px,env(safe-area-inset-bottom))}
}


/* Give the event panel label a little more presence. */
#performanceDetail .ev-detail-chrome{font-weight:600}


/* Mobile page introductions: generous headlines with less empty image height. */
@media(max-width:700px), (orientation:landscape) and (max-height:500px) and (max-width:1000px) and (hover:none){
#page-visit .story-hero{height:auto;min-height:260px;max-height:none;box-sizing:border-box;background-position:center 55%}
#page-story .story-hero,#page-rentals .story-hero{height:auto;min-height:280px;max-height:none;box-sizing:border-box}
#page-story .story-hero{background-position:center 65%}
#page-rentals .story-hero{background-position:center 54%}
#page-visit .story-hero-content,#page-story .story-hero-content,#page-rentals .story-hero-content{width:100%;padding:32px 24px;box-sizing:border-box}
#page-events .ev-hero{height:auto;min-height:340px;padding:32px 24px;box-sizing:border-box;align-items:flex-end}
#page-events .ev-hero-photo{object-position:center 58%}
}
@media(orientation:landscape) and (max-height:500px) and (max-width:1000px) and (hover:none){
#page-visit .story-hero,#page-story .story-hero,#page-rentals .story-hero{min-height:210px}
#page-events .ev-hero{min-height:260px;padding:24px}
#page-visit .story-hero-content,#page-story .story-hero-content,#page-rentals .story-hero-content{padding:24px}
}


/* Tight, consistent finish beneath event details without stacked bottom padding. */
#performanceDetail .ev-detail-layout{padding-bottom:6px}
#performanceDetail .ev-detail-actions{padding-top:8px;padding-bottom:8px;gap:6px}
@media(max-width:860px){#performanceDetail .ev-detail-layout{padding-bottom:4px}}


/* Content-sized event dialog: auto height can stretch between native modal insets. */
#performanceDetail.ev-detail{height:fit-content;min-height:0;max-height:calc(100dvh - 24px);margin:auto;box-sizing:border-box}
#performanceDetail .ev-detail-actions{align-content:start;min-height:0;flex-grow:0;flex-shrink:0}


#page-legacy{background:var(--page-bg);color:var(--page-text)}
#page-legacy header{position:relative;background:var(--ivory);color:var(--ink)}
.fc-legacy-main{max-width:1120px;margin:auto;padding:64px 40px 80px}
.fc-legacy-kicker{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--charcoal);margin:0 0 16px}
.fc-legacy-main>h1{font-size:clamp(30px,4vw,54px);line-height:1.1;font-weight:400;max-width:900px;margin:0 0 40px}
.fc-original-section{padding:28px 0;border-top:1px solid var(--page-hairline)}
.fc-original-section h2,.fc-original-section h3{font-size:clamp(22px,2.4vw,32px);line-height:1.3;margin:0 0 18px;font-weight:400}
.fc-original-section h4,.fc-original-section h5,.fc-original-section h6{font-size:16px;margin:18px 0 10px}
.fc-original-section p,.fc-original-section li{font-size:17px;line-height:1.7;max-width:850px;color:var(--page-text-secondary)}
.fc-original-section a{border-bottom:1px solid var(--gold);padding-bottom:2px}
.fc-original-section iframe{width:100%;max-width:100%;border:0;min-height:650px}
.fc-original-section img{max-width:100%;height:auto;display:block;margin:22px 0}
.fc-retained-info{max-width:1100px;margin:36px auto;padding:0 32px}
.fc-retained-info>summary{cursor:pointer;padding:20px 0;border-top:1px solid var(--page-hairline);font-size:18px;font-weight:600}
.fc-site-directory{display:flex;gap:12px 24px;flex-wrap:wrap;padding:28px 0;border-top:1px solid var(--page-hairline)}
.fc-site-directory a{font-size:14px;border-bottom:1px solid var(--page-hairline)}
@media(max-width:700px){.fc-legacy-main{padding:28px 20px 48px}.fc-legacy-main>h1{margin-bottom:28px}.fc-original-section{padding:20px 0}.fc-original-section p,.fc-original-section li{font-size:16px}.fc-retained-info{padding:0 20px}}
#page-legacy header .brand-worlds{background:#d5d3cf}


#page-events { background: var(--ivory); color: var(--ink); font-family: Georgia, 'Times New Roman', serif; }
.ev-hero { background: radial-gradient(ellipse 60% 70% at 80% 35%, rgba(176,141,69,0.24), transparent 65%), radial-gradient(ellipse 50% 60% at 5% 105%, rgba(26,26,26,0.38), transparent 60%), var(--ink); padding: 168px 56px 96px; overflow: hidden; }
.ev-hero .ev-hero-inner { display: grid; grid-template-columns: 1fr 340px; gap: 72px; align-items: center; }
.ev-hero .kicker.sans::after { content: ''; display: block; width: 56px; height: 1px; background: var(--gold); margin-top: 16px; }
.ev-next { justify-self: end; width: 100%; max-width: 340px; }
.ev-next[hidden] { display: none; }
.ev-next-flyer { display: block; line-height: 0; transform: rotate(2deg); box-shadow: 0 28px 60px rgba(0,0,0,0.55), 0 0 0 1px rgba(176,141,69,0.35); transition: transform 0.3s ease; background: rgba(242,240,236,0.06); min-height: 120px; }
.ev-next-flyer:hover { transform: rotate(0deg) scale(1.02); }
.ev-next-flyer:focus-visible { outline: 2px solid var(--gold); outline-offset: 4px; }
.ev-next-flyer img { width: 100%; height: auto; display: block; }
.ev-next-body { margin-top: 28px; padding-left: 4px; }
.ev-next-label { font-size: 12px; letter-spacing: 0.18em; color: var(--gold); margin-bottom: 8px; }
.ev-next-title { font-size: 22px; line-height: 1.25; color: var(--ivory); margin-bottom: 6px; }
.ev-next-when { font-size: 14px; color: rgba(242,240,236,0.7); margin-bottom: 18px; }
.ev-hero-inner, .ev-wrap { max-width: 1120px; margin: 0 auto; }
.ev-wrap { padding: 24px 56px 110px; }
.ev-hero .kicker.sans { color: var(--gold); }
.ev-hero h1 { font-size: 52px; line-height: 1.1; font-weight: 400; letter-spacing: -0.02em; margin: 0 0 20px; color: var(--ivory); max-width: 16ch; }
.ev-lede { font-size: 18px; line-height: 1.65; color: rgba(242,240,236,0.75); max-width: 34em; margin: 0; }
.ev-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--hairline-dark); }
.ev-row { display: grid; grid-template-columns: 220px 88px 1fr auto; gap: 32px; align-items: center; padding: 36px 0; border-bottom: 1px solid var(--hairline-dark); }
.ev-flyer { display: block; background: rgba(26,26,26,0.06); border: 1px solid var(--hairline-dark); box-shadow: 0 6px 18px rgba(26,26,26,0.12); line-height: 0; }
.ev-flyer img { width: 100%; height: auto; display: block; }
.ev-flyer:focus-visible { outline: 2px solid var(--mahogany); outline-offset: 3px; }
.ev-date { text-align: center; line-height: 1; color: var(--mahogany); }
.ev-date .m { display: block; font-size: 15px; letter-spacing: 0.06em; margin-bottom: 8px; }
.ev-date .d { display: block; font-size: 44px; font-weight: bold; }
.ev-info h3 { font-size: 26px; font-weight: 400; line-height: 1.25; margin: 0 0 8px; color: var(--ink); }
.ev-when { font-size: 15px; color: var(--charcoal); margin: 0 0 10px; }
.ev-info p { font-size: 16px; line-height: 1.6; color: var(--charcoal); margin: 0; max-width: 34em; }
.ev-actions { display: flex; gap: 12px; flex-wrap: wrap; justify-content: flex-end; }
.ev-actions a { white-space: nowrap; }
.ev-actions a:focus-visible { outline: 2px solid var(--mahogany); outline-offset: 3px; }
@media (max-width: 720px) {
  .ev-hero { padding: 120px 24px 56px; }
  .ev-wrap { padding: 8px 24px 72px; }
  .ev-hero h1 { font-size: 38px; }
  .ev-hero .ev-hero-inner { grid-template-columns: 1fr; gap: 44px; }
  .ev-next { justify-self: center; max-width: 300px; }
  .ev-next-flyer { transform: none; }
  .ev-row { grid-template-columns: 64px 1fr; gap: 18px; padding: 28px 0; }
  .ev-flyer { grid-column: 1 / -1; max-width: 340px; }
  .ev-date .d { font-size: 34px; }
  .ev-actions { grid-column: 1 / -1; justify-content: flex-start; }
}


/* Landscape mobile photography gives the stacked layout a quicker rhythm. */
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
  #page-home .collection-tile { height: auto; aspect-ratio: 16 / 9; }
  #page-home .collection-tile .label { left: 22px; right: 22px; bottom: 20px; }
  #page-home .collection-tile .label .kicker.sans { margin-bottom: 6px; font-size: 10px; }
  #page-home .collection-tile .label h3 { font-size: 24px; }
  #page-category .cat-media, #page-grand .cat-media,
  #page-lessons .cat-media, #page-storage .cat-media { aspect-ratio: 16 / 9; }
  .split > img { display: block; height: auto; min-height: 0; aspect-ratio: 16 / 9; object-fit: cover; object-position: center; }
  .gp-hero-photo { aspect-ratio: 16 / 9; }
  .gp-hero-photo img { height: 100%; object-fit: cover; }
  .gd-brands-photo { aspect-ratio: 16 / 9; }
  .gd-size-card img { aspect-ratio: 16 / 9; }
  .re-photo { aspect-ratio: 16 / 9; }
  .re-photo img { height: 100%; }
  /* Headlines over photography need more height to remain comfortable. */
  .restoration-hero-photo { height: 340px; }
  #page-events .ev-hero { min-height: 460px; padding: 40px 24px; }
}


/* Let the technician photograph sit directly within the restoration section. */
#page-restoration .re-stage { background: transparent; padding: 0; border-radius: 16px; }
#page-restoration .re-stage::after { content: none; }
#page-restoration .re-photo { border-radius: 16px; box-shadow: none; }


#page-events .ev-list { border: 0; }
.ev-month-heading { font-size: 30px; font-weight: 400; margin: 44px 0 18px; }
#page-events .ev-row { grid-template-columns: 76px minmax(0, 1fr) 210px; gap: 28px; padding: 28px; margin-bottom: 16px; background: #FAF8F4; border: 1px solid rgba(26,26,26,.08); border-top: 2px solid transparent; border-radius: 12px; transition: border-color .2s ease; }
#page-events .ev-row:hover, #page-events .ev-row:focus-within { border-top-color: var(--gold); }
#page-events .ev-date { grid-column: 1; grid-row: 1 / 3; align-self: start; padding-top: 4px; }
#page-events .ev-info { grid-column: 2; grid-row: 1; }
#page-events .ev-info h3 { font-size: 30px; }
#page-events .ev-flyer { grid-column: 3; grid-row: 1 / 3; border-radius: 8px; overflow: hidden; box-shadow: none; }
#page-events .ev-actions { grid-column: 2; grid-row: 2; justify-content: flex-start; gap: 10px; }
.ev-share { display: inline-flex; gap: 7px; align-items: center; justify-content: center; min-height: 44px; padding: 8px 12px; background: transparent; border: 1px solid rgba(26,26,26,.2); border-radius: 12px; color: #1A1A1A; font: 13px Georgia, serif; cursor: pointer; }
.ev-share:hover { border-color: #B08D45; color: #8C6C30; }
.ev-share:focus-visible { outline: 2px solid #B08D45; outline-offset: 3px; }
.ev-share svg { width: 16px; height: 16px; }
.ev-detail { width: min(920px, calc(100% - 32px)); max-height: 90dvh; padding: 40px; border: 0; border-radius: 16px; background: #F2F0EC; color: #1A1A1A; }
.ev-detail::backdrop { background: rgba(0,0,0,.65); }
.ev-detail-close { position: absolute; top: 12px; right: 12px; width: 40px; height: 40px; border: 0; background: transparent; font-size: 26px; cursor: pointer; }
.ev-detail-layout { display: grid; grid-template-columns: 1.2fr 1fr; gap: 32px; border-top: 2px solid #B08D45; padding-top: 28px; }
.ev-detail h2 { font-size: 38px; line-height: 1.15; margin: 10px 0 20px; font-weight: 400; }
.ev-detail p { line-height: 1.7; }
.ev-detail .ev-when { line-height: 1.5; }
.ev-detail-photo { width: 100%; height: auto; border-radius: 8px; }
.ev-detail-actions { display: flex; flex-wrap: wrap; gap: 10px; border-top: 1px solid rgba(26,26,26,.15); padding-top: 22px; margin-top: 24px; }
@media (min-width: 701px) and (max-width: 1000px) {
 #page-events .ev-row { grid-template-columns: 60px minmax(0, 1fr) 170px; gap: 20px; }
}
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
 #page-events .ev-row { grid-template-columns: 48px 1fr; gap: 16px; padding: 22px 18px; }
 #page-events .ev-info h3 { font-size: 25px; }
 #page-events .ev-flyer { display: none; }
 #page-events .ev-actions { grid-column: 1 / -1; }
 #page-events .ev-actions a { padding: 10px 14px; font-size: 12px; }
 .ev-month-heading { font-size: 26px; }
 .ev-detail { padding: 44px 22px 24px; }
 .ev-detail-layout { grid-template-columns: 1fr; gap: 24px; }
 .ev-detail h2 { font-size: 30px; }
 .ev-detail-photo { max-height: 400px; object-fit: contain; }
}


.ev-discovery { display: grid; grid-template-columns: 1fr 220px; gap: 20px; margin-top: 32px; }
.ev-discovery label { font-size: 12px; color: var(--charcoal); }
.ev-discovery input, .ev-discovery select { display: block; width: 100%; margin-top: 8px; padding: 14px 16px; border: 1px solid rgba(26,26,26,.18); border-radius: 10px; background: #FAF8F4; color: #1A1A1A; font: 15px Georgia, serif; }
#page-events .ev-row[hidden], .ev-month-heading[hidden] { display: none; }
.ev-detail-art { margin: 0; }
.ev-detail-art a { display: inline-block; margin-top: 14px; font-size: 13px; border-bottom: 1px solid #B08D45; padding-bottom: 4px; }
.ev-detail-label { font-size: 13px; letter-spacing: .07em; text-transform: uppercase; margin: 28px 0 12px; color: #8C6C30; }
.ev-detail-photo { max-height: 570px; object-fit: contain; }
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) { .ev-discovery { grid-template-columns: 1fr; gap: 14px; } }


/* Quiet, tactile performance discovery controls. */
.ev-discovery { align-items: end; gap: 16px; margin: 36px 0 12px; }
.ev-discovery label { letter-spacing: .04em; padding: 0 2px; }
.ev-discovery input, .ev-discovery select { min-height: 50px; border-radius: 18px; padding: 14px 20px; border-color: rgba(26,26,26,.12); background-color: rgba(250,248,244,.8); box-shadow: 0 2px 6px rgba(26,26,26,.025); transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease; outline: none; }
.ev-discovery input { padding-left: 46px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23767672' stroke-width='1.5' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='m16 16 5 5'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: 17px center; }
.ev-discovery input::placeholder { color: #777772; opacity: 1; }
.ev-discovery select { appearance: none; padding-right: 42px; cursor: pointer; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23767672' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 17px center; }
.ev-discovery input:hover, .ev-discovery select:hover { border-color: rgba(176,141,69,.5); background-color: #FAF8F4; }
.ev-discovery input:focus, .ev-discovery select:focus { border-color: #B08D45; background-color: #FAF8F4; box-shadow: 0 0 0 3px rgba(176,141,69,.12); }
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) { .ev-discovery { gap: 12px; margin-top: 26px; } .ev-discovery input, .ev-discovery select { font-size: 16px; min-height: 48px; } }
@media (prefers-reduced-motion: reduce) { .ev-discovery input, .ev-discovery select { transition: none; } }


.ev-discovery { grid-template-columns: minmax(0, 1fr) 190px 130px; }
.ev-discovery #performanceYear { padding: 14px 18px; background-image: none; }
/* Subtle feedback shared by the site's primary interactive controls. */
body :is(.btn-primary, .btn-outline-ink, .btn-outline, .cat-btn, .gd-outline-btn, .offer-btn, .ev-share, .connect-option) { transition: transform .22s ease, background-color .22s ease, border-color .22s ease, color .22s ease, box-shadow .22s ease; }
body :is(.btn-primary, .btn-outline-ink, .btn-outline, .cat-btn, .gd-outline-btn, .offer-btn, .ev-share, .connect-option):focus-visible { outline: 2px solid #B08D45; outline-offset: 4px; }
body :is(.btn-primary, .btn-outline-ink, .btn-outline, .cat-btn, .gd-outline-btn, .offer-btn, .ev-share):active { transform: translateY(0) scale(.98); }
body :is(.gd-size-card, .ls-teacher-card, .trend-card) { transition: box-shadow .25s ease, transform .25s ease; }
@media (hover: hover) and (pointer: fine) {
 body :is(.btn-primary, .btn-outline-ink, .btn-outline, .cat-btn, .gd-outline-btn, .offer-btn, .ev-share, .connect-option):hover { transform: translateY(-2px); box-shadow: 0 5px 14px rgba(26,26,26,.08); }
 body :is(.gd-size-card, .ls-teacher-card, .trend-card):hover { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(26,26,26,.08); }
}
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) { .ev-discovery { grid-template-columns: minmax(0, 1fr) 110px; } .ev-discovery label:first-child { grid-column: 1 / -1; } }
@media (prefers-reduced-motion: reduce) {
 body :is(.btn-primary, .btn-outline-ink, .btn-outline, .cat-btn, .gd-outline-btn, .offer-btn, .ev-share, .connect-option, .gd-size-card, .ls-teacher-card, .trend-card) { transition: none; transform: none !important; }
}


#lessons-teachers .ls-request-lesson { display: flex; justify-content: center; margin: 32px 0 20px; }


#lessons-teachers article.ls-teacher { display: flex; flex-direction: column; }
#lessons-teachers article .ls-teacher-body { display: flex; flex-direction: column; flex: 1; }
#lessons-teachers article .ls-teacher-actions { justify-content: center; margin-top: auto; padding-top: 24px; }


.ev-discovery { grid-template-columns: minmax(0, 1fr) 220px; }
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) { .ev-discovery { grid-template-columns: 1fr; } }


#lessons-nyssma .ny-block { border-top-color: transparent; transition: border-color .22s ease, box-shadow .22s ease; }
#lessons-nyssma .ny-block:hover, #lessons-nyssma .ny-block:focus-within, #lessons-nyssma .ny-block.ny-engaged { border-top-color: #B08D45; box-shadow: 0 6px 18px rgba(26,26,26,.045); }
.ny-levels button { flex: 1; aspect-ratio: 1; min-height: 40px; padding: 0; border: 1px solid transparent; border-radius: 8px; font: 16px Georgia, serif; color: #1A1A1A; background: #EFEBE3; cursor: pointer; transition: background-color .2s ease, transform .2s ease, border-color .2s ease; }
.ny-levels button:hover { border-color: #B08D45; transform: translateY(-2px); }
.ny-levels button[aria-pressed="true"] { background: #B08D45; }
.ny-levels button:focus-visible { outline: 2px solid #B08D45; outline-offset: 3px; }
.ny-levels button:active { transform: scale(.96); }
.ny-level-detail { padding: 12px 0; min-height: 72px; border-top: 1px solid rgba(26,26,26,.1); }
@media (prefers-reduced-motion: reduce) { #lessons-nyssma .ny-block, .ny-levels button { transition: none; transform: none; } }


#lessons-nyssma .ny-block { transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
@media (hover: hover) and (pointer: fine) {
 #lessons-nyssma .ny-block:hover { transform: translateY(-4px); border-top-color: #B08D45; box-shadow: 0 12px 26px rgba(26,26,26,.09); }
}
#lessons-nyssma .ny-block:focus-within { box-shadow: 0 12px 26px rgba(26,26,26,.09); }
@media (prefers-reduced-motion: reduce) { #lessons-nyssma .ny-block { transition: none; transform: none; } }


#page-lessons .gd-path-stage { background: transparent; padding: 0; }
#page-lessons .gd-path-card { padding: 0; overflow: hidden; border-radius: 16px; }
#page-lessons .ls-process-toggle { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 28px; margin: 0; border: 0; background: transparent; text-align: left; color: var(--ink); cursor: pointer; }
.ls-process-title { display: block; font: 24px Georgia, serif; line-height: 1.3; }
.ls-process-sub { display: block; margin-top: 8px; font: 13px Georgia, serif; color: var(--charcoal); }
#page-lessons .ls-process-toggle .faq-icon { flex-shrink: 0; color: #B08D45; font-size: 26px; transition: transform .25s ease; }
#page-lessons .ls-process-toggle[aria-expanded="true"] .faq-icon { transform: rotate(45deg); }
#page-lessons .ls-process-toggle:hover { background: rgba(176,141,69,.05); }
#page-lessons .ls-process-toggle:focus-visible { outline: 2px solid #B08D45; outline-offset: -3px; }
.ls-process-details { overflow: hidden; padding: 0 28px 28px; }
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) { #page-lessons .ls-process-toggle { padding: 22px; } .ls-process-title { font-size: 21px; } .ls-process-details { padding: 0 22px 22px; } }
@media (prefers-reduced-motion: reduce) { #page-lessons .ls-process-toggle .faq-icon { transition: none; } }


#page-lessons .ls-process-toggle .faq-icon { display: flex; width: 24px; height: 24px; }
#page-lessons .ls-process-toggle .faq-icon svg { width: 24px; height: 24px; }
#page-lessons .ls-process-toggle[aria-expanded="true"] .faq-icon { transform: rotate(180deg); }
#page-lessons .gd-path-card > .gd-callout { margin: 0 28px 28px; }
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) { #page-lessons .gd-path-card > .gd-callout { margin: 0 22px 22px; } }


:is(#page-grand, #page-category, #page-storage) .gd-path-stage { background: transparent; padding: 0; }
:is(#page-grand, #page-category, #page-storage) .gd-path-card { padding: 0; overflow: hidden; border-radius: 16px; }
:is(#page-grand, #page-category, #page-storage) .collection-process-toggle { display: flex; align-items: center; justify-content: space-between; gap: 20px; width: 100%; padding: 28px; margin: 0; border: 0; background: transparent; text-align: left; cursor: pointer; }
.collection-process-title { display: block; font: 24px Georgia, serif !important; color: var(--ink) !important; line-height: 1.3; }
.collection-process-sub { display: block; margin-top: 8px; font-size: 13px !important; }
.collection-process-toggle .faq-icon { display: flex; flex-shrink: 0; width: 24px; height: 24px; color: #B08D45; transition: transform .25s ease; }
.collection-process-toggle .faq-icon svg { width: 24px; height: 24px; }
.collection-process-toggle[aria-expanded="true"] .faq-icon { transform: rotate(180deg); }
.collection-process-toggle:hover { background: rgba(30,30,30,.08) !important; }
.collection-process-toggle:focus-visible { outline: 2px solid #B08D45; outline-offset: -3px; }
.collection-process-details { overflow: hidden; padding: 0 28px 28px; }
:is(#page-grand, #page-category, #page-storage) .gd-path-card > .gd-callout { margin: 0 28px 28px; }
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
 :is(#page-grand, #page-category, #page-storage) .collection-process-toggle { padding: 22px; }
 .collection-process-title { font-size: 21px !important; }
 .collection-process-details { padding: 0 22px 22px; }
 :is(#page-grand, #page-category, #page-storage) .gd-path-card > .gd-callout { margin: 0 22px 22px; }
}
@media (prefers-reduced-motion: reduce) { .collection-process-toggle .faq-icon { transition: none; } }


/* A lighter outlined accent for the six-month rental offer. */
:is(#page-lessons, #page-grand, #page-category, #page-storage) .gd-callout-mark { background: #F2F0EC; border: 1px solid #B08D45; }
:is(#page-lessons, #page-grand, #page-category, #page-storage) .gd-callout-num,
:is(#page-lessons, #page-grand, #page-category, #page-storage) .gd-callout-label { color: #1A1A1A; }


.gd-brand-tile { transition: background-color .24s ease; }
.gd-brand-tile span { transition: color .24s ease; }
.gd-brand-tile:hover, .gd-brand-tile:focus-visible { background: #1A1A1A; }
.gd-brand-tile:hover span, .gd-brand-tile:focus-visible span { color: #F2F0EC; }
.gd-brand-tile:focus-visible { outline: 2px solid #B08D45; outline-offset: -3px; }
@media (prefers-reduced-motion: reduce) { .gd-brand-tile, .gd-brand-tile span { transition: none; } }


/* Match process heading weight in both collapsed and expanded states. */
#page-lessons .ls-process-title,
:is(#page-grand, #page-category, #page-storage) .collection-process-title { font-weight: 400 !important; }



#page-lessons .gd-path-card-head .ls-process-title,
:is(#page-grand, #page-category, #page-storage) .gd-path-card-head .collection-process-title { font-family: Georgia, 'Times New Roman', serif; font-size: 24px !important; font-weight: 600 !important; line-height: 1.3; color: var(--ink) !important; }
#page-lessons .gd-path-card-head .ls-process-sub,
:is(#page-grand, #page-category, #page-storage) .gd-path-card-head .collection-process-sub { font-size: 13px !important; font-weight: 400; color: var(--charcoal); }
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {
 #page-lessons .gd-path-card-head .ls-process-title,
 :is(#page-grand, #page-category, #page-storage) .gd-path-card-head .collection-process-title { font-size: 21px !important; }
}


/* Quiet definition around the expandable process headers. */
#page-lessons .ls-process-toggle,
:is(#page-grand, #page-category, #page-storage) .collection-process-toggle { border: 1px solid rgba(26,26,26,.2); border-radius: 12px; transition: border-color .22s ease, background-color .22s ease; }
#page-lessons .ls-process-toggle:hover,
#page-lessons .ls-process-toggle:focus-visible,
:is(#page-grand, #page-category, #page-storage) .collection-process-toggle:hover,
:is(#page-grand, #page-category, #page-storage) .collection-process-toggle:focus-visible { border-color: #B08D45; }
@media (prefers-reduced-motion: reduce) {
 #page-lessons .ls-process-toggle,
 :is(#page-grand, #page-category, #page-storage) .collection-process-toggle { transition: none; }
}


/* Frame the complete process panel rather than its opening control. */
#page-lessons .ls-process-toggle,
:is(#page-grand, #page-category, #page-storage) .collection-process-toggle { border: 0; border-radius: 0; }
:is(#page-lessons, #page-grand, #page-category, #page-storage) .gd-path-card { border: 1px solid rgba(26,26,26,.2); transition: border-color .22s ease; }
:is(#page-lessons, #page-grand, #page-category, #page-storage) .gd-path-card:hover,
:is(#page-lessons, #page-grand, #page-category, #page-storage) .gd-path-card:focus-within { border-color: #B08D45; }
@media (prefers-reduced-motion: reduce) { :is(#page-lessons, #page-grand, #page-category, #page-storage) .gd-path-card { transition: none; } }


:is(#page-lessons, #page-grand, #page-category, #page-storage) .gd-path-card,
:is(#page-lessons, #page-grand, #page-category, #page-storage) .gd-path-card:hover,
:is(#page-lessons, #page-grand, #page-category, #page-storage) .gd-path-card:focus-within { border-color: #1A1A1A; }


/* Present the learning video without an extra decorative backing. */
.gd-feature-stage { background: transparent; padding: 0; border-radius: 16px; }
.gd-feature-stage .gd-feature-video { border-radius: 16px; }


/* Preserve the program accordion title's weight in either state. */
#page-lessons .pa-head .pa-title,
#page-lessons .pa-head[aria-expanded="true"] .pa-title,
#page-lessons .pa-head[aria-expanded="false"] .pa-title { font-weight: 600; }
#page-lessons .pa-head { transition: background-color .22s ease; }


#page-lessons .ls-process-toggle[aria-expanded] .ls-process-title,
:is(#page-grand, #page-category, #page-storage) .collection-process-toggle[aria-expanded] .collection-process-title { font-weight: 600 !important; }


#page-storage .gd-callout-mark { background: #F2F0EC; border: 1px solid #B08D45; color: #1A1A1A; }


.st-services { padding-top: 18px; }
.st-service-tabs { display: flex; gap: 8px; max-width: 800px; margin: 0 auto 20px; }
.st-service-tabs button { flex: 1; padding: 14px 18px; border: 1px solid rgba(26,26,26,.2); border-radius: 12px; background: transparent; color: var(--ink); font: 16px Georgia, serif; cursor: pointer; transition: background-color .2s ease, color .2s ease, border-color .2s ease; }
.st-service-tabs button[aria-selected="true"] { background: #1A1A1A; color: #F2F0EC; border-color: #1A1A1A; }
.st-service-tabs button:hover { border-color: #B08D45; }
.st-service-tabs button:focus-visible { outline: 2px solid #B08D45; outline-offset: 3px; }
.st-service-panel { max-width: 800px; margin: 0 auto; padding: 32px; border: 1px solid rgba(26,26,26,.15); border-radius: 16px; }
.st-service-panel[hidden] { display: none; }
.st-service-panel h3 { font: 28px Georgia, serif; margin: 0 0 18px; color: var(--ink); }
.st-service-panel p { font-size: 17px; line-height: 1.7; color: var(--charcoal); }
.st-service-panel .gd-outline-btn { display: flex; align-items: center; justify-content: center; width: fit-content; max-width: 100%; margin: 24px auto 0; padding: 12px 22px; line-height: 1.3; white-space: normal; text-align: center; }
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) { .st-service-tabs { gap: 6px; } .st-service-tabs button { padding: 12px 8px; font-size: 13px; } .st-service-panel { padding: 24px; } .st-service-panel h3 { font-size: 24px; } }


.st-service-visual { position: relative; max-width: 800px; height: 230px; margin: 0 auto 24px; overflow: hidden; border-radius: 16px; background: #1A1A1A; }
.st-service-visual img { width: 100%; height: 100%; object-fit: cover; object-position: center 50%; opacity: .7; }
.st-service-visual::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.65), transparent 80%); }
.st-service-visual figcaption { position: absolute; z-index: 1; left: 30px; bottom: 30px; color: #F2F0EC; }
.st-service-visual figcaption span { display: block; color: #C9A45A; font-size: 11px; letter-spacing: .12em; margin-bottom: 10px; }
.st-service-visual strong { font: 32px Georgia, serif; }
.st-service-tabs button { display: flex; align-items: center; justify-content: center; gap: 10px; }
.st-service-tabs svg { width: 22px; height: 22px; flex-shrink: 0; }
.st-service-panel { background: #FAF8F4; border-top: 2px solid #B08D45; }
.st-service-points { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; padding: 18px 0; margin: 20px 0 10px; list-style: none; border-top: 1px solid rgba(26,26,26,.12); border-bottom: 1px solid rgba(26,26,26,.12); }
.st-service-points li { font-size: 14px; line-height: 1.4; color: var(--ink); }
.st-service-points li::before { content: ''; display: block; width: 18px; height: 2px; background: #B08D45; margin-bottom: 10px; }
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) { .st-service-visual { height: 190px; } .st-service-visual figcaption { left: 22px; bottom: 22px; } .st-service-visual strong { font-size: 28px; } .st-service-tabs button { flex-direction: column; gap: 7px; } .st-service-points { gap: 12px; } .st-service-points li { font-size: 12px; } }


#page-financing .fn-steps .fn-interactive-step { position: relative; isolation: isolate; overflow: visible; box-shadow: inset 0 0 0 1px transparent; transition: box-shadow .24s ease; }
#page-financing .fn-steps .fn-interactive-step.is-engaged { box-shadow: inset 0 0 0 1px #1A1A1A; z-index: 2; }
.fn-interactive-step::before { content: ""; position: absolute; inset: 1px; background: #faf8f4; border-radius: 15px; z-index: 0; pointer-events: none; }
.fn-step-trigger { position: relative; z-index: 1; display: block; width: 100%; padding: 0; border: 0; background: #faf8f4; color: var(--ink); text-align: left; cursor: pointer; font: inherit; }
.fn-step-trigger:focus-visible { outline: 1px solid #1A1A1A; outline-offset: 8px; }
.fn-step-title { display: block; font: 400 26px/normal Georgia, serif; margin: 38px 0 12px; }
.fn-step-copy { display: block; font: 17px/1.65 Georgia, serif; color: var(--charcoal); }
.fn-video-reveal { position: absolute; top: calc(100% - 12px); left: 12px; right: 12px; z-index: -1; opacity: 0; visibility: hidden; transform: translateY(-100%); transition: transform .36s cubic-bezier(.22,1,.36,1), opacity .2s ease, visibility .36s; pointer-events: none; }
.is-engaged .fn-video-reveal { opacity: 1; visibility: visible; transform: translateY(0); pointer-events: auto; }
.fn-video-panel { display: flex; gap: 14px; align-items: center; background: #1A1A1A; color: #F2F0EC; padding: 25px 18px 13px; border-radius: 0 0 12px 12px; }
.fn-video-placeholder { width: 64px; flex: 0 0 64px; aspect-ratio: 16/10; border: 1px solid #D6D6D3; background: #E8E8E5; color: #1A1A1A; border-radius: 5px; display: grid; place-items: center; }
.fn-video-placeholder svg { width: 21px; height: 21px; }
.fn-video-panel > div:last-child { flex: 1; text-align: center; }
.fn-video-label { display: block; font-family: Arial, sans-serif; font-size: 10px; font-weight: 400; letter-spacing: .1em; color: #F2F0EC; }
#page-financing .fn-steps .fn-video-panel p { display: none; }
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) { .fn-steps { row-gap: 88px; } }
@media(prefers-reduced-motion:reduce) { .fn-video-reveal, .fn-interactive-step { transition: none !important; } }


#promoModal .modal-badge.sans { background: var(--ivory); border: 1px solid var(--gold); border-radius: 6px !important; color: var(--ink); }


.gd-series-toolbar { max-width:1180px; margin:0 auto 18px; display:flex; justify-content:flex-start; }
.gd-series-toggle { display:inline-flex; align-items:center; gap:9px; padding:9px 13px; border:1px solid rgba(26,26,26,.25); border-radius:7px; background:transparent; color:var(--ink); font:12px Arial,sans-serif; cursor:pointer; transition:background .2s,color .2s; }
.gd-series-toggle:hover { background:#1A1A1A; color:#F2F0EC; }
.gd-series-toggle svg { width:16px; height:16px; }
.gd-series-extra { max-width:1180px; margin:auto; padding-top:18px; }
.gd-video-grid[hidden], .gd-series-extra[hidden] { display:none !important; }
.gd-video-card { box-shadow:inset 0 0 0 1px transparent; transition:box-shadow .2s; cursor:pointer; }
.gd-video-card:hover, .gd-video-card.is-selected { box-shadow:inset 0 0 0 1px #1A1A1A; }
button.gd-video-thumb { width:100%; border:0; padding:0; cursor:pointer; color:inherit; }
button.gd-video-thumb:focus-visible { outline:2px solid #B08D45; outline-offset:-4px; }
.gd-series-toggle:focus-visible { outline:2px solid #B08D45; outline-offset:3px; }
@media(prefers-reduced-motion:reduce) { .gd-video-card,.gd-series-toggle { transition:none; } }


#page-storage .st-service-panel .gd-outline-btn { width: 100%; max-width: 100%; box-sizing: border-box; margin: 28px 0 0; padding: 16px 22px; border: 1px solid #1A1A1A; border-radius: 8px; background: #1A1A1A; color: #FFFFFF; transition: background-color .24s ease, color .24s ease; }
#page-storage .st-service-panel .gd-outline-btn:hover,
#page-storage .st-service-panel .gd-outline-btn:focus-visible { background: #FFFFFF; color: #1A1A1A; transform: none; box-shadow: none; }
#page-storage .st-service-panel .gd-outline-btn:active { background: #FFFFFF; color: #1A1A1A; }
@media(prefers-reduced-motion:reduce) { #page-storage .st-service-panel .gd-outline-btn { transition: none; } }


#page-storage .st-service-panel { padding-bottom: 0; overflow: hidden; border-radius: 16px; }
#page-storage .st-service-points { border: 0; padding: 20px 0 24px; margin: 0; }
#page-storage .st-service-points li::before { content: none; }
#page-storage .st-service-points li { padding-right: 16px; }
#page-storage .st-service-points li + li { border-left: 1px solid rgba(26,26,26,.18); padding-left: 16px; }
#page-storage .st-service-panel .gd-outline-btn { width: calc(100% + 64px); max-width: none; margin: 0 -32px; padding: 18px 32px; border: 0; border-top: 1px solid #1A1A1A; border-radius: 0; background: #1A1A1A; color: #FFFFFF; }
#page-storage .st-service-panel .gd-outline-btn:hover,
#page-storage .st-service-panel .gd-outline-btn:focus-visible { background: #FFFFFF; color: #1A1A1A; }
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) { #page-storage .st-service-panel .gd-outline-btn { width: calc(100% + 48px); margin: 0 -24px; padding: 18px 24px; } #page-storage .st-service-points { gap: 10px; } #page-storage .st-service-points li { padding-right: 8px; } #page-storage .st-service-points li + li { padding-left: 10px; } }


#page-storage .st-service-panel a.gd-outline-btn,
#page-storage .st-service-panel a.gd-outline-btn:hover,
#page-storage .st-service-panel a.gd-outline-btn:focus-visible { border-radius: 0 !important; clip-path: none; }


#page-storage .st-service-points { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0; padding: 20px 0 22px; }
#page-storage .st-service-points li,
#page-storage .st-service-points li + li { display: flex; align-items: center; justify-content: center; text-align: center; padding: 0 12px; min-height: 28px; line-height: 1.45; }
#page-storage .st-service-panel .gd-outline-btn { gap: 12px; font-weight: 500; cursor: pointer; }
.st-action-arrow { display: inline-block; transition: transform .24s ease; }
.st-service-panel .gd-outline-btn:hover .st-action-arrow { transform: translateX(4px); }
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) { #page-storage .st-service-points li, #page-storage .st-service-points li + li { padding: 0 8px; font-size: 12px; } }
@media(prefers-reduced-motion:reduce) { .st-action-arrow { transition: none; } }


@media(min-width:861px) {
[id^="page-"] header .header-main nav.header-links { display:flex !important; flex-shrink:0; align-items:center; }
[id^="page-"] header .header-main nav.header-links a { color:#F2F0EC !important; opacity:1; }
[id^="page-"] header .header-main nav.header-links a:hover { color:#C9A45A !important; }
}


[id^="page-"] header .header-main .header-cta { background:#FFFFFF !important; color:#1A1A1A !important; border-color:#FFFFFF !important; }
[id^="page-"] header .header-main .header-cta:hover { background:#F2F0EC !important; color:#1A1A1A !important; }
.header-search { position:relative; }
.header-popular { position:absolute; top:calc(100% + 10px); left:0; width:340px; max-width:calc(100vw - 32px); background:#191919; border:1px solid rgba(242,240,236,.22); border-radius:12px; padding:18px 12px 12px; box-shadow:0 12px 28px rgba(0,0,0,.2); z-index:210; color:#F2F0EC; }
.header-popular[hidden] { display:none; }
.header-popular h3 { font:600 13px Arial,sans-serif; margin:0 10px 10px; color:#F2F0EC; }
.header-popular a { display:flex; align-items:center; gap:12px; padding:10px; border-radius:6px; color:#F2F0EC !important; font:14px Arial,sans-serif; text-decoration:none; }
.header-popular a:hover,.header-popular a:focus-visible { background:#30302F; outline:none; }
.header-popular a svg { width:16px; height:16px; stroke:#C8C8C5 !important; }


#serviceRequest { width:min(640px,calc(100vw - 32px)); max-height:90dvh; padding:32px; border:1px solid #B08D45; border-radius:16px; background:#F2F0EC; color:#1A1A1A; }
#serviceRequest::backdrop { background:rgba(0,0,0,.65); }
.sr-close { float:right; border:0; background:transparent; font-size:26px; cursor:pointer; }
.sr-progress { display:flex; gap:10px; margin:22px 0 28px; }
.sr-progress span { flex:1; border-top:3px solid #CBCBC7; padding-top:8px; font:11px Arial,sans-serif; }
.sr-progress span.active { border-color:#B08D45; }
#serviceRequest h2 { font:32px/1.15 Georgia,serif; margin:0 0 22px; }
.sr-options { display:grid; gap:8px; }
.sr-option { display:flex; gap:12px; align-items:center; padding:18px; border:1px solid #D2D2CE; border-radius:7px; background:#FAF8F4; cursor:pointer; font:15px Arial,sans-serif; }
.sr-option:has(input:checked) { border-color:#1A1A1A; background:#1A1A1A; color:#F2F0EC; }
#serviceRequest input[type=checkbox] { accent-color:#B08D45; width:18px; height:18px; }
.sr-fields { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.sr-fields label { display:grid; gap:7px; font:12px Arial,sans-serif; }
.sr-fields input,.sr-fields select,.sr-fields textarea { width:100%; box-sizing:border-box; padding:13px; background:#FAF8F4; color:#1A1A1A; border:1px solid #CBCBC7; border-radius:6px; font:15px Arial,sans-serif; }
.sr-fields input:focus,.sr-fields select:focus,.sr-fields textarea:focus { outline:1px solid #B08D45; }
.sr-wide { grid-column:1/-1; }
.sr-actions { display:flex; gap:12px; margin-top:28px; }
.sr-actions button { padding:14px 20px; border:1px solid #1A1A1A; border-radius:7px; cursor:pointer; font:14px Arial,sans-serif; }
.sr-next { flex:1; background:#1A1A1A; color:#FFFFFF; }
.sr-back { background:transparent; color:#1A1A1A; }
.sr-note { font:12px/1.5 Arial,sans-serif; color:#4A4A48; }
#serviceRequest [hidden] { display:none!important; }
@media(max-width:600px) { #serviceRequest { padding:24px; } .sr-fields { grid-template-columns:1fr; } }


#restorationForm .rf-step[hidden],#restorationForm .rf-back[hidden]{display:none!important}
#restorationForm .rf-step{display:flex;flex-direction:column;gap:18px}
#restorationForm .rf-progress{margin:0 0 6px;text-align:left}
#restorationForm .restoration-submit{margin:0;flex:1}
#restorationForm .sr-actions{margin-top:10px}
#restorationModal .restoration-form-card{max-width:680px}


#serviceRequest{padding:38px;box-sizing:border-box;border:1px solid rgba(176,141,69,.55);border-radius:12px;box-shadow:0 24px 90px rgba(0,0,0,.24);}
#serviceRequest .sr-close{float:none;position:absolute;right:18px;top:16px;display:grid;place-items:center;width:32px;height:32px;padding:0;border-radius:50%;font:24px/1 Arial,sans-serif;color:#555550;transition:background .2s,color .2s;}
#serviceRequest .sr-close:hover{background:#E5E3DD;color:#1A1A1A;}
#serviceRequest .sr-progress{margin:20px 0 32px;gap:14px;}
#serviceRequest .sr-progress span{border-top-width:2px;padding-top:10px;font:11px/1.4 Arial,sans-serif;letter-spacing:.025em;color:#777770;}
#serviceRequest .sr-progress span.active{color:#1A1A1A;}
#serviceRequest h2{font-size:clamp(27px,5vw,34px);line-height:1.16;letter-spacing:-.025em;margin-bottom:24px;max-width:450px;}
#serviceRequest .sr-fields{gap:20px 18px;}
#serviceRequest .sr-fields label{font-size:12px;line-height:1.4;color:#4A4A48;gap:8px;}
#serviceRequest .sr-fields input,#serviceRequest .sr-fields select,#serviceRequest .sr-fields textarea{min-height:48px;padding:13px 14px;border-color:#D3D1CA;border-radius:5px;background:#FAF9F6;font-size:16px;line-height:1.4;transition:border-color .2s,box-shadow .2s;}
#serviceRequest .sr-fields textarea{resize:vertical;min-height:96px;}
#serviceRequest .sr-fields input::placeholder,#serviceRequest .sr-fields textarea::placeholder{color:#89877F;font-size:14px;}
#serviceRequest .sr-fields input:focus,#serviceRequest .sr-fields select:focus,#serviceRequest .sr-fields textarea:focus{outline:none;border-color:#B08D45;box-shadow:0 0 0 3px rgba(176,141,69,.10);}
#serviceRequest .sr-options{gap:12px;}
#serviceRequest .sr-option{padding:20px 18px;min-height:64px;box-sizing:border-box;border-radius:6px;font-size:16px;transition:border-color .2s,background .2s,color .2s;}
#serviceRequest .sr-option:hover{border-color:#1A1A1A;}
#serviceRequest .sr-option:has(input:focus-visible){outline:2px solid #B08D45;outline-offset:3px;}
#serviceRequest .sr-note{font-size:12px;line-height:1.65;margin:16px 0 0;color:#6B6961;}
#serviceRequest #srError:empty{display:none;}
#serviceRequest .sr-actions{padding-top:24px;margin-top:28px;border-top:1px solid #DAD8D0;}
#serviceRequest .sr-actions button{min-height:48px;border-radius:5px;font-size:14px;transition:background .2s,color .2s,border-color .2s;}
#serviceRequest .sr-next:hover{background:#363632;}
#serviceRequest .sr-back{border-color:#CCCAC2;background:transparent;}
#serviceRequest .sr-back:hover{background:#E8E6DF;border-color:#1A1A1A;}
#serviceRequest button:focus-visible{outline:2px solid #B08D45;outline-offset:3px;}
@media(max-width:600px){#serviceRequest{padding:28px 22px;width:calc(100vw - 24px);max-height:92dvh;}#serviceRequest .sr-progress{gap:9px;margin-top:24px;margin-bottom:26px;}#serviceRequest .sr-fields{gap:16px;}#serviceRequest .sr-actions{padding-top:20px;margin-top:24px;}}
@media(prefers-reduced-motion:reduce){#serviceRequest *{transition:none!important;}}


#serviceRequest,#restorationModal .restoration-form-card{border:1px solid #D7D4CC;border-radius:10px;background:#F2F0EC;color:#1A1A1A;}
#serviceRequest .sr-progress span,#restorationModal .rf-progress span{border-color:#D7D4CC;color:#817E77;font:11px/1.5 Arial,sans-serif;letter-spacing:.04em;}
#serviceRequest .sr-progress span.active,#restorationModal .rf-progress span.active{border-color:#1A1A1A;color:#1A1A1A;}
#restorationModal .restoration-accent,#restorationModal .restoration-accent span{color:#6B675F;}
#restorationModal .restoration-form-card h3{font-size:clamp(27px,5vw,34px);line-height:1.16;letter-spacing:-.025em;}
#restorationModal .restoration-form label{font:12px/1.5 Arial,sans-serif;color:#4A4A48;}
#restorationModal .restoration-form input:not([type=checkbox]):not([type=file]),#restorationModal .restoration-form select,#restorationModal .restoration-form textarea{min-height:48px;border:1px solid #D3D1CA;border-radius:5px;background:#FAF9F6;color:#1A1A1A;font:16px/1.4 Arial,sans-serif;padding:13px 14px;}
#restorationModal .restoration-form input:focus-visible,#restorationModal .restoration-form select:focus-visible,#restorationModal .restoration-form textarea:focus-visible{outline:2px solid #B08D45;outline-offset:2px;}
#serviceRequest .sr-option{background:#E8E5DE;border:1px solid #D7D4CC;}
#serviceRequest .sr-option:has(input:checked){background:#252523;color:#F2F0EC;border-color:#252523;}
#serviceRequest .sr-option:hover{border-color:#1A1A1A;}
.fc-completion-preview{display:block;margin:22px auto 0;border:0;background:transparent;color:#706D66;font:11px/1.4 Arial,sans-serif;text-decoration:underline;text-underline-offset:4px;cursor:pointer;}
#fcRequestComplete{width:min(720px,calc(100vw - 24px));max-height:90dvh;padding:42px;border:1px solid #D7D4CC;border-radius:10px;background:#F2F0EC;color:#1A1A1A;box-shadow:0 24px 90px #0005;}
#fcRequestComplete::backdrop{background:#0009;backdrop-filter:blur(6px);}
.fc-complete-close{position:absolute;right:16px;top:12px;border:0;background:transparent;font:26px Arial;color:#6B675F;cursor:pointer;}
.fc-complete-kicker{font:10px/1.5 Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#6B675F;margin:0 0 16px;}
#fcCompleteTitle{font:36px/1.12 Georgia,serif;letter-spacing:-.025em;margin:0 0 14px;}
.fc-complete-description{font:14px/1.65 Arial,sans-serif;color:#5B5851;max-width:510px;margin:0;}
.fc-complete-explore{margin:30px 0 14px;padding-top:24px;border-top:1px solid #D7D4CC;font:18px/1.3 Georgia,serif;}
.fc-complete-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.fc-complete-card{display:block;text-align:left;padding:0;border:1px solid #D7D4CC;border-radius:5px;overflow:hidden;background:#FAF9F6;color:#1A1A1A;cursor:pointer;transition:border-color .2s,background .2s;}
.fc-complete-card img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;}
.fc-complete-card-copy{display:block;padding:18px;}
.fc-complete-card small{display:block;font:10px/1.4 Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#6B675F;margin-bottom:8px;}
.fc-complete-card strong{display:block;font:21px/1.2 Georgia,serif;}
.fc-complete-card p{font:12px/1.6 Arial,sans-serif;color:#6B675F;margin:10px 0 16px;}
.fc-complete-card .fc-card-link{font:12px/1.4 Arial,sans-serif;display:flex;justify-content:space-between;align-items:center;}
.fc-complete-card .fc-card-link span{transition:transform .2s;}
.fc-complete-card:hover{border-color:#1A1A1A;background:#FFF;}
.fc-complete-card:hover .fc-card-link span{transform:translateX(4px);}
#fcRequestComplete button:focus-visible,.fc-completion-preview:focus-visible{outline:2px solid #B08D45;outline-offset:3px;}
.fc-complete-footer{display:block;margin:24px auto 0;padding:4px;border:0;background:transparent;color:#5B5851;font:12px Arial,sans-serif;cursor:pointer;}
@media(max-width:520px){#fcRequestComplete{padding:36px 22px 24px;}#fcCompleteTitle{font-size:30px;}.fc-complete-grid{gap:10px;}.fc-complete-card-copy{padding:13px;}.fc-complete-card strong{font-size:18px;}.fc-complete-card p{font-size:11px;}}
@media(prefers-reduced-motion:reduce){.fc-complete-card,.fc-card-link span{transition:none!important;}}


#serviceRequest .fc-phone-hint,#restorationModal .fc-phone-hint{display:block;font:11px/1.5 Arial,sans-serif;color:#706D66;margin-top:2px;font-weight:normal;}


#serviceRequest input[aria-invalid="true"],#serviceRequest select[aria-invalid="true"],#restorationModal input[aria-invalid="true"],#restorationModal select[aria-invalid="true"]{border:2px solid #8B332D!important;}
.fc-field-error{display:block;font:13px/1.5 Arial,sans-serif;color:#8B332D;margin-top:5px;font-weight:normal;}
.fc-request-alert{background:#FAF9F6;border-left:3px solid #8B332D;padding:12px 14px;margin:0 0 20px;color:#1A1A1A;font:14px/1.5 Arial,sans-serif;}
#serviceRequest .sr-fields label,#restorationModal .restoration-form label{font-size:14px;}
#serviceRequest .sr-note{font-size:14px;}
#serviceRequest button,#restorationModal .sr-actions button{min-height:44px;}


.fc-send-status{font:14px/1.6 Arial,sans-serif;margin:18px 0 0;color:#1A1A1A;}
.fc-send-status[data-error="true"]{padding:12px 14px;border-left:3px solid #8B332D;background:#FAF9F6;}
.fc-send-status a{text-decoration:underline;text-underline-offset:3px;}
.fc-photo-consent{display:flex!important;align-items:flex-start;gap:10px;margin-top:12px;font:14px/1.5 Arial,sans-serif!important;}
.fc-photo-consent input{width:18px!important;min-height:18px!important;flex-shrink:0;margin-top:3px;}
#serviceRequest button:disabled,#restorationModal button:disabled{opacity:.65;cursor:wait;}


#fcRequestComplete{width:min(900px,calc(100vw - 24px));}
.fc-complete-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
.fc-complete-card strong{font-size:20px;}
.fc-complete-card-copy{display:flex;flex-direction:column;}
.fc-complete-card p{flex:1;}
@media(max-width:640px){.fc-complete-grid{grid-template-columns:1fr;}.fc-complete-card img{aspect-ratio:5/2;}.fc-complete-card-copy{display:block;height:auto;}.fc-complete-card p{margin:8px 0 12px;}}


/* Diagonal corner fragments run behind the education cards and testimonials. */
#page-home .home-heritage-wrap{position:relative;overflow:hidden;isolation:isolate;background:var(--page-bg);}
#page-home .home-heritage-wrap>section{position:relative;z-index:1;background:transparent;}
#page-home #music-education .section-narrow{position:relative;background:var(--page-bg);}
#page-home .quote-section{position:relative;overflow:visible;}
#page-home .quote-heritage{position:absolute;pointer-events:none;user-select:none;color:var(--page-text);opacity:.1;z-index:0;}
#page-home .quote-heritage span{display:block;font:700 clamp(360px,32vw,640px)/.8 Georgia,'Times New Roman',serif;letter-spacing:-.09em;white-space:nowrap;}
#page-home .quote-heritage-left{left:auto;right:calc(50% + 405px);top:110px;transform:rotate(-12deg);transform-origin:right top;}
#page-home .quote-heritage-left span{font-size:clamp(270px,24vw,470px);}
#page-home .quote-heritage-right{right:auto;left:calc(50% + 450px);bottom:-105px;transform:rotate(-12deg);transform-origin:left bottom;}
@media(max-width:1199px){#page-home .quote-heritage{display:none;}}


/* Upright model illustrations: show both elevations completely. */
:is(#page-category,#page-grand) .gd-blueprint-card img{object-fit:contain;object-position:center;aspect-ratio:3/2;background:#FFF;transform:none!important;}
:is(#page-category,#page-grand) .gd-blueprint-card:hover img{transform:none;}


:is(#page-category,#page-grand) .gd-blueprint-card .gd-size-body{position:relative;border-top:1px solid #D8D4CD;}
:is(#page-category,#page-grand) .gd-blueprint-card .gd-size-body::before{content:'';position:absolute;top:-1px;left:0;right:0;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .3s ease;pointer-events:none;}
:is(#page-category,#page-grand) .gd-blueprint-card:is(:focus-within,:active) .gd-size-body::before{transform:scaleX(1);}
:is(#page-category,#page-grand) .gd-blueprint-card:is(:focus-within,:active) .gd-size-meta{color:var(--gold);}
:is(#page-category,#page-grand) .gd-blueprint-card:is(:focus-within,:active) .gd-size-meta svg{stroke:var(--gold);}
@media(hover:hover){:is(#page-category,#page-grand) .gd-blueprint-card:hover .gd-size-body::before{transform:scaleX(1);}:is(#page-category,#page-grand) .gd-blueprint-card:hover .gd-size-meta{color:var(--gold);}:is(#page-category,#page-grand) .gd-blueprint-card:hover .gd-size-meta svg{stroke:var(--gold);}}
@media(prefers-reduced-motion:reduce){:is(#page-category,#page-grand) .gd-blueprint-card .gd-size-body::before{transition:none;}}


#page-category .gd-professional-card .gd-size-meta svg{width:18px;height:18px;flex-shrink:0;}





#page-grand .gd-grand-sprite{position:relative;width:100%;aspect-ratio:3/2;overflow:hidden;background:#FFF;}
#page-grand .gd-blueprint-card .gd-grand-sprite img{position:absolute;left:var(--sprite-left);top:var(--sprite-top);width:200%;height:200%;max-width:none;aspect-ratio:auto;object-fit:fill;transform:none!important;}


/* Separate the hover band from the rental offer. */
:is(#page-grand,#page-category,#page-storage) .collection-process-toggle { padding-bottom:20px; }
:is(#page-grand,#page-category,#page-storage) .collection-process-toggle:hover,
:is(#page-grand,#page-category,#page-storage) .collection-process-toggle:focus-visible,
#page-lessons .ls-process-toggle:hover,
#page-lessons .ls-process-toggle:focus-visible { background:rgba(30,30,30,.12) !important; }
:is(#page-grand,#page-category,#page-storage,#page-lessons) .gd-path-card > .gd-callout { margin-top:16px; }


/* Dark inverse treatment for expandable process headings. */
:is(#page-grand,#page-category,#page-storage) .collection-process-toggle:hover,
:is(#page-grand,#page-category,#page-storage) .collection-process-toggle:focus-visible,
#page-lessons .ls-process-toggle:hover,
#page-lessons .ls-process-toggle:focus-visible { background:#1e1e1e !important; color:#fff; }
:is(#page-grand,#page-category,#page-storage) .collection-process-toggle:is(:hover,:focus-visible) .collection-process-title,
:is(#page-grand,#page-category,#page-storage) .collection-process-toggle:is(:hover,:focus-visible) .collection-process-sub,
#page-lessons .ls-process-toggle:is(:hover,:focus-visible) .ls-process-title,
#page-lessons .ls-process-toggle:is(:hover,:focus-visible) .ls-process-sub { color:#fff !important; }
.collection-process-title,.collection-process-sub,.ls-process-title,.ls-process-sub { transition:color .25s ease; }
@media(prefers-reduced-motion:reduce) { .collection-process-title,.collection-process-sub,.ls-process-title,.ls-process-sub { transition:none; } }


/* Let the opening heading ease back to its resting colors. */
:is(#page-grand,#page-category,#page-storage) .collection-process-toggle,
#page-lessons .ls-process-toggle { transition:background-color .4s ease,color .4s ease; }
:is(#page-grand,#page-category,#page-storage) .collection-process-toggle[aria-expanded="true"],
#page-lessons .ls-process-toggle[aria-expanded="true"] { background:transparent !important; color:var(--ink); }
:is(#page-grand,#page-category,#page-storage) .collection-process-toggle[aria-expanded="true"] .collection-process-title,
#page-lessons .ls-process-toggle[aria-expanded="true"] .ls-process-title { color:var(--ink) !important; }
:is(#page-grand,#page-category,#page-storage) .collection-process-toggle[aria-expanded="true"] .collection-process-sub,
#page-lessons .ls-process-toggle[aria-expanded="true"] .ls-process-sub { color:var(--charcoal) !important; }
.collection-process-title,.collection-process-sub,.ls-process-title,.ls-process-sub { transition:color .4s ease; }
@media(prefers-reduced-motion:reduce) { :is(#page-grand,#page-category,#page-storage) .collection-process-toggle,#page-lessons .ls-process-toggle,.collection-process-title,.collection-process-sub,.ls-process-title,.ls-process-sub { transition:none; } }


/* One resting state after a process heading is activated. */
body :is(.collection-process-toggle,.ls-process-toggle) { transition:background-color .4s ease !important; -webkit-tap-highlight-color:transparent; }
body :is(.collection-process-toggle,.ls-process-toggle).process-activated { background:transparent !important; }
body :is(.collection-process-toggle,.ls-process-toggle).process-activated :is(.collection-process-title,.ls-process-title) { color:var(--ink) !important; }
body :is(.collection-process-toggle,.ls-process-toggle).process-activated :is(.collection-process-sub,.ls-process-sub) { color:var(--charcoal) !important; }
body :is(.collection-process-toggle,.ls-process-toggle) :is(.collection-process-title,.ls-process-title,.collection-process-sub,.ls-process-sub) { transition:color .4s ease !important; }
@media(prefers-reduced-motion:reduce) { body :is(.collection-process-toggle,.ls-process-toggle),body :is(.collection-process-toggle,.ls-process-toggle) * { transition:none !important; } }


/* Let the dark hover dissolve gradually as the section opens. */
body :is(.collection-process-toggle,.ls-process-toggle).process-activated { transition:background-color .7s ease .06s !important; }
body :is(.collection-process-toggle,.ls-process-toggle).process-activated :is(.collection-process-title,.ls-process-title,.collection-process-sub,.ls-process-sub) { transition:color .7s ease .06s !important; }
@media(prefers-reduced-motion:reduce) { body :is(.collection-process-toggle,.ls-process-toggle).process-activated,body :is(.collection-process-toggle,.ls-process-toggle).process-activated * { transition:none !important; } }


/* Keep expansion from changing scroll anchoring or hover geometry. */
:is(#page-grand,#page-category,#page-storage,#page-lessons) .gd-path-card { overflow-anchor:none; }


.tn-application {width:min(760px,100%);margin:auto;animation:tn-enter .35s ease;}
.tn-application[hidden],.tn-application [hidden] {display:none!important;}
.tn-application h2 {font:400 38px/1.2 Georgia,serif;color:white;margin:0 0 16px;}
.tn-form-intro,.tn-form-note {color:#c8c6c0;font:17px/1.6 Georgia,serif;margin:0 0 28px;}
.tn-form-progress {display:flex;gap:24px;margin:28px 0;font-size:13px;color:#898989;}
.tn-form-progress span {flex:1;border-top:2px solid #4a4a4a;padding-top:12px;}
.tn-form-progress span.active {color:#fff;border-color:#d8b86d;}
.tn-application fieldset {border:0;padding:0;margin:0;min-width:0;}
.tn-field-grid {display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.tn-field-grid label {display:block;color:#eee;font:14px/1.4 Arial,sans-serif;}
.tn-field-grid label span {color:#929292;font-size:12px;}
.tn-field-grid input,.tn-field-grid select,.tn-field-grid textarea {display:block;box-sizing:border-box;width:100%;margin-top:9px;padding:14px 16px;border:1px solid #595959;border-radius:6px;background:#202020;color:#fff;font:16px/1.4 Arial,sans-serif;transition:border-color .2s ease;}
.tn-field-grid input::placeholder,.tn-field-grid textarea::placeholder {color:#999;}
.tn-field-grid :is(input,select,textarea):focus {border-color:#d8b86d;outline:2px solid rgba(216,184,109,.2);outline-offset:2px;}
.tn-field-wide {grid-column:1/-1;}
.tn-field-grid textarea {resize:vertical;}
.tn-form-actions {display:flex;gap:16px;justify-content:space-between;margin-top:32px;}
.tn-form-actions button {min-height:48px;padding:12px 24px;font-size:14px;border-radius:6px;cursor:pointer;}
.tn-form-back {background:transparent;border:1px solid #666;color:#fff;}
.tn-form-next,.tn-form-submit {background:#d8b86d;border:1px solid #d8b86d;color:#171717;font-weight:600;}
.tn-form-note {margin-top:24px;}
.tn-form-status {font-size:14px;color:#e8cb8d;margin-top:16px;}
.tn-sr {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);}
@media (max-width: 700px), (orientation: landscape) and (max-height: 500px) and (max-width: 1000px) and (hover: none) {.tn-application h2{font-size:29px;}.tn-field-grid{grid-template-columns:1fr;gap:18px;}.tn-form-actions button{padding:12px 16px;}.tn-form-progress{gap:14px;}}

.tn-controls[hidden] { display:none !important; }
/* Keep submission recommendations compact regardless of image dimensions. */
#fcRequestComplete .fc-complete-grid{align-items:stretch;}
#fcRequestComplete .fc-complete-card{display:flex;flex-direction:column;justify-content:flex-start;min-width:0;height:auto;}
#fcRequestComplete .fc-complete-card>img{display:block;width:100%;height:auto;min-height:0;max-height:none;aspect-ratio:16/9;object-fit:cover;object-position:center;flex:none;}
#fcRequestComplete .fc-complete-card-copy{display:flex;flex-direction:column;flex:1;height:auto;}
#fcRequestComplete .fc-card-link{margin-top:auto;}
@media(max-width:640px){#fcRequestComplete .fc-complete-card>img{aspect-ratio:5/2;}}

/* Slightly larger desktop header wordmark. */
@media(min-width:861px) and (hover:hover),(min-width:1001px){[id^="page-"] header .header-main .wordmark{font-size:21px}}

/* Original homepage hero CTAs: preserve desktop brand typeface on smaller screens.
   Override the legacy mobile shorthand that switched these two buttons to Arial. */
@media (max-width: 860px) {
  #page-home .hero:not(.fc-promo-active) .hero-actions > a.home-collection-cta.sans,
  #page-home .hero:not(.fc-promo-active) .hero-actions > a.home-financing-cta.sans {
    font-family: Georgia, 'Times New Roman', serif !important;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.25;
    letter-spacing: 0.02em;
  }
}
