/* Shared type scale. The existing layout and photo geometry remain in style.css. */
:root {
  --type-meta: .8125rem;
  --type-label: 1rem;
  --type-body: clamp(1.125rem, 1.4vw, 1.25rem);
  --tracking-heading: -.02em;
  --black: #1a2340;
  --panel: #243054;
  --gold: #e8c77a;
  --primary: #d4a574;
  --white: #f4ead5;
  --ink: #111827;
  --muted: #bcc2d2;
  --line: #4a4f61;
  --font: 'Inter', Arial, sans-serif;
  --font-display: 'Cormorant Garamond', Georgia, serif;
}
body { font-size: var(--type-body); line-height: 1.55; }
h1, h2, h3, h4 { text-wrap: balance; }
p { text-wrap: pretty; }
.brand > span { font-size: 1.625rem; line-height: 1; }
.brand-caption { font-size: var(--type-meta); line-height: 1.4; }
.desktop-nav, .header-cta { font-size: var(--type-label); line-height: 1.4; }
.hero-top, .hero-kicker, .hero-caption, .hero-main-photo figcaption,
.glass-note > span:last-child, .strength-proof > span:first-child,
.strength-photo-label, .project-meta, .project-tags span,
.service-number, .package-index, .contact-side-label, .footer-bottom,
.prototype-note, .dialog-body .eyebrow, .dialog-tags > span {
  font-size: var(--type-meta);
  line-height: 1.55;
}
.hero-top { letter-spacing: .045em; padding-bottom: 1.5rem; }
.hero-kicker { letter-spacing: .075em; margin-bottom: 1.5rem; }
.hero-caption { letter-spacing: .04em; margin-top: 1.75rem; }
.hero-grid { min-height: 0; gap: 2.5rem; align-items: center; }
.hero-copy { min-width: 0; width: 100%; padding: 1.5rem 0; }
.hero h1 {
  font-size: clamp(3.25rem, 6.65vw, 7.75rem);
  line-height: 1.07;
  letter-spacing: -.04em;
  white-space: normal;
}
.hero h1 > span { letter-spacing: inherit; white-space: nowrap; }
.hero-copy > p { font-size: 1.125rem; line-height: 1.65; margin: 1.75rem 0; }
.hero-actions { gap: 1rem 1.5rem; flex-wrap: wrap; }
.button { font-size: var(--type-body); line-height: 1.4; }
.hero-secondary, .text-link, .proof-strip > a, .social-links a,
.package-select, .back-top { font-size: var(--type-label); line-height: 1.5; }
.hero-collage { width: 100%; min-height: 0; padding: 1.5rem 0; }
.glass-note { width: 100%; }
.glass-note strong { font-size: var(--type-body); line-height: 1.5; }
.glass-note > span:last-child { letter-spacing: .045em; }
.proof-strip { margin-top: 0; }
.proof-strip strong { font-size: 1.875rem; line-height: 1.2; letter-spacing: -.025em; }
.proof-strip span { font-size: var(--type-label); line-height: 1.5; }
.proof-strip > div:nth-child(3) span { max-width: none; }
.eyebrow { font-size: var(--type-meta); line-height: 1.55; letter-spacing: .07em; }
.section-intro h2, .packages .section-intro h2 {
  font-size: clamp(2.125rem, 4.5vw, 4.5rem);
  line-height: 1.13;
  letter-spacing: var(--tracking-heading);
}
.accent-word, .outline-word { letter-spacing: -.015em; }
.section-intro > p, .projects-intro-copy > p,
.strength-detail > p:first-child, .project-open > p,
.service-content > p, .contact-copy > p,
.dialog-body p, .dialog-body li, .brief-panel #brief-result > p {
  font-size: var(--type-body);
  line-height: 1.75;
}
.strength-tab strong {
  font-size: clamp(1.375rem, 2.3vw, 2.125rem);
  letter-spacing: var(--tracking-heading);
  line-height: 1.25;
}
.strength-tab small, .strength-proof > span:last-child,
.strength-fact, .service-hint, .package-toolbar > span,
.package-name small, .package-details ul, .brief-panel label,
.footer-top > p, .full-cycle-bottom > span {
  font-size: var(--type-label);
  line-height: 1.6;
}
.strength-index { font-size: var(--type-meta); line-height: 1.5; }
.strength-proof strong { font-size: 3.25rem; line-height: 1.1; letter-spacing: -.035em; }
.strength-proof { grid-template-columns: auto minmax(0, 1fr); }
.strength-detail > p:first-child { min-height: 0; }
.full-cycle-bottom { letter-spacing: -.02em; line-height: 1.35; }
.full-cycle-bottom em { letter-spacing: -.015em; }
.pill-note, .service-tags span, .price-note, .form-note, .field-error,
.selected-request { font-size: .8125rem; line-height: 1.6; }
.project-meta { letter-spacing: .035em; margin-top: 1.25rem; }
.project-open h3 {
  font-size: clamp(1.5rem, 2.4vw, 2.25rem);
  line-height: 1.3;
  letter-spacing: var(--tracking-heading);
  overflow-wrap: break-word;
}
.projects-outro > span { font-size: 1.125rem; line-height: 1.6; letter-spacing: 0; }
.service-list h3 {
  font-size: clamp(1.375rem, 2.5vw, 2.25rem);
  line-height: 1.3;
  letter-spacing: var(--tracking-heading);
}
.package-tabs button { font-size: var(--type-body); line-height: 1.5; }
.package-name { min-width: 0; }
.package-name strong {
  font-size: 1.5rem;
  line-height: 1.35;
  letter-spacing: -.02em;
  overflow-wrap: normal;
  hyphens: manual;
}
.package-price { font-size: 2rem; line-height: 1.25; letter-spacing: -.02em; }
.package-price small { font-size: var(--type-label); }
.contact-copy { min-width: 0; }
.contact-copy h2 {
  font-size: clamp(2.5rem, 4.7vw, 4.75rem);
  line-height: 1.1;
  letter-spacing: -.035em;
}
.contact-copy h2 > span { letter-spacing: -.015em; line-height: 1.1; }
.contact-phone { font-size: 1.625rem; line-height: 1.4; letter-spacing: -.015em; white-space: nowrap; }
.contact-direct > a:last-child { font-size: var(--type-body); }
.brief-panel h3, .brief-panel h4 {
  font-size: 1.75rem;
  line-height: 1.25;
  letter-spacing: -.025em;
}
.brief-panel label { color: #586348; }
.brief-panel input { font-size: var(--type-body); line-height: 1.5; }
.brief-panel .button { font-size: var(--type-label); line-height: 1.4; }
.form-note, .prototype-note { color: #647054; }
.dialog-body h2 { font-size: 2.25rem; line-height: 1.25; letter-spacing: -.025em; overflow-wrap: break-word; }
.dialog-body h3 { font-size: 1.125rem; line-height: 1.4; letter-spacing: -.01em; }
.dialog-body .button { font-size: var(--type-label); }

@media (max-width: 1100px) {
  .hero-grid { gap: 1.75rem; }
  .hero-copy > p { font-size: var(--type-body); }
  .hero-actions { align-items: flex-start; }
  .service-hint { font-size: var(--type-label); }
  .package-row summary { grid-template-columns: 2rem minmax(0, 1fr) 10rem 2.5rem; }
  .package-name strong { font-size: 1.375rem; }
}
@media (max-width: 960px) {
  .desktop-nav, .header-cta { display: none; }
  .menu-toggle {
    display: flex; width: 44px; height: 44px; background: none;
    border: 1px solid #6d7063; flex-direction: column;
    gap: 6px; justify-content: center; align-items: center;
  }
  .menu-toggle span { height: 1px; width: 19px; background: var(--white); }
  .mobile-nav:not([hidden]) {
    display: flex; position: absolute; top: 100%; left: 0; right: 0;
    background: var(--black); padding: 24px 6% 30px; gap: 22px;
    flex-direction: column; border-bottom: 1px solid var(--line);
    border-radius: 0 0 26px 26px;
  }
  .hero-grid { grid-template-columns: 1fr; gap: .75rem; align-items: stretch; }
  .hero h1 { font-size: clamp(2rem, 9.5vw, 5.75rem); }
  .hero-copy { padding: .5rem 0; }
  .hero-actions { flex-direction: row; align-items: center; }
  .hero-caption { display: none; }
  .hero-collage { margin: .5rem 0 0; padding: .5rem 0; }
  .hero-main-photo { max-height: none; }
}
@media (max-width: 760px) {
  .hero-top { font-size: var(--type-meta); }
  .hero h1 { font-size: clamp(2rem, 9.5vw, 4.5rem); }
  .hero-copy > p { margin: 1.5rem 0; }
  .hero-actions .button { font-size: var(--type-label); }
  .hero-main-photo figcaption { font-size: var(--type-meta); }
  .glass-note { padding: 1rem; }
  .glass-note strong { font-size: var(--type-body); }
  .glass-note > span:last-child { font-size: var(--type-meta); }
  .proof-strip strong { font-size: 1.625rem; }
  .proof-strip > div:nth-child(3) { flex-direction: column; align-items: flex-start; gap: .5rem; }
  .proof-strip > div:nth-child(3) strong { font-size: 1.625rem; }
  .proof-strip > div:nth-child(3) span { font-size: var(--type-label); max-width: none; }
  .section-intro h2, .packages .section-intro h2 { font-size: clamp(2rem, 8vw, 3.5rem); }
  .strength-tab strong { font-size: 1.5rem; }
  .strength-tab small { font-size: var(--type-label); }
  .strength-proof { padding: 1.125rem; gap: .25rem 1rem; }
  .strength-proof strong { font-size: 2.75rem; }
  .strength-proof > span:first-child { font-size: var(--type-meta); letter-spacing: 0; }
  .strength-proof > span:last-child { font-size: var(--type-label); }
  .strength-photo-label { font-size: var(--type-meta); }
  .project-open h3 { font-size: 1.75rem; }
  .project-tags span { font-size: var(--type-meta); }
  .project-tags { gap: 5px; left: 14px; right: 64px; bottom: 16px; }
  .project-tags span { padding: 6px 9px; }
  .service-list h3 { font-size: 1.375rem; }
  .service-content { padding-left: 0; }
  .package-row summary { grid-template-columns: minmax(0, 1fr) 2rem; }
  .package-name strong { font-size: 1.375rem; }
  .package-name small, .package-toolbar > span { font-size: var(--type-label); }
  .package-price { font-size: 1.875rem; }
  .contact-copy h2 { font-size: clamp(2.25rem, 9.5vw, 4.375rem); }
  .contact-phone { font-size: 1.5rem; }
  .contact-side-label { font-size: var(--type-meta); }
  .brief-panel h3, .brief-panel h4 { font-size: 1.625rem; }
  .dialog-body h2 { font-size: 1.75rem; }
  .dialog-body .eyebrow { font-size: var(--type-meta); }
  .dialog-body .button { gap: .75rem; }
}
@media (max-width: 380px) {
  .hero h1 { font-size: clamp(2rem, 9.5vw, 2.25rem); }
  .strength-tab { grid-template-columns: 1.25rem minmax(0, 1fr) 1.5rem; }
  .strength-tab strong { font-size: 1.3125rem; }
  .strength-tab small { font-size: var(--type-label); }
  .strength-proof { grid-template-columns: 1fr; gap: .375rem; }
  .strength-proof strong, .strength-proof > span:first-child, .strength-proof > span:last-child { grid-column: auto; grid-row: auto; }
  .strength-proof strong { order: -1; }
  .project-open h3 { font-size: 1.5rem; }
  .package-name strong { font-size: 1.25rem; }
  .service-list h3 { font-size: 1.25rem; }
  .dialog-body { padding-inline: 1.25rem; }
  .dialog-body .button { padding-inline: 1rem; font-size: var(--type-label); }
}

/* Cormorant Garamond + Inter, adapted from the supplied brand kit. */
body { font-family: var(--font); font-size: 1rem; }
h1, h2, h3, h4 { font-family: var(--font-display); font-weight: 400; }
.brand > span { font-family: var(--font-display); font-size: 2.125rem; font-weight: 400; letter-spacing: .05em; }
.brand-caption { font-family: var(--font); font-size: .75rem; letter-spacing: .06em; color: var(--muted); }
.hero h1 { font-size: clamp(3.75rem, 6.4vw, 6.5rem); line-height: 1; letter-spacing: -.035em; font-weight: 400; }
.hero h1 > span { font-family: var(--font-display); font-style: italic; color: var(--gold); }
.hero-copy > p { font-size: var(--type-body); line-height: 1.6; }
.hero-top, .hero-kicker, .hero-caption, .glass-note > span:last-child { color: var(--muted); }
.hero-copy > p, .hero-caption > span:first-child { color: var(--white); }
.hero-top { padding-bottom: 1.75rem; }
.hero-grid { grid-template-columns: 1.08fr 1fr; gap: 3rem; }
.hero-collage { padding-block: 1.25rem; }
.hero-light-field { display: none; }
.proof-strip { margin-top: 2.5rem; }
.proof-strip span { color: var(--muted); }
.proof-strip strong { font-family: var(--font-display); font-weight: 400; font-size: 2.625rem; letter-spacing: -.02em; }
.section-intro h2, .packages .section-intro h2 { font-size: clamp(2.5rem, 4vw, 4rem); line-height: 1.08; letter-spacing: -.03em; font-weight: 400; }
.accent-word, .outline-word, .full-cycle-bottom em, .contact-copy h2 > span { font-family: var(--font-display); font-weight: 400; letter-spacing: -.02em; }
.accent-word { color: var(--black); }
.section-intro > p, .projects-intro-copy > p, .strength-detail > p:first-child,
.project-open > p, .service-content > p, .contact-copy > p,
.dialog-body p, .dialog-body li, .brief-panel #brief-result > p { line-height: 1.6; }
.section-intro > p, .strength-detail > p:first-child, .strength-tab small,
.strength-photo-label, .full-cycle-bottom > span, .package-toolbar > span,
.package-name small, .package-details ul, .price-note, .form-note,
.prototype-note, .brief-panel label, .dialog-body p, .dialog-body li,
.brief-panel #brief-result > p { color: #535969; }
.eyebrow, .strength-index, .package-index { color: #626374; }
.section-dark .eyebrow, .service-number, .service-hint { color: var(--muted); }
.section-dark .section-intro > p, .service-content > p, .footer-top > p, .footer-bottom { color: #c8ccd7; }
.footer-social{display:flex;gap:12px;padding:22px 0;border-bottom:1px solid #424935}
.footer-social-icon{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;font-size:.75rem;font-weight:700;letter-spacing:.02em;color:var(--muted);transition:border-color .2s,color .2s}
.footer-social-icon:hover{border-color:var(--gold);color:var(--gold)}
.projects .eyebrow, .projects-intro-copy > p, .project-open > p, .project-meta,
.contact .eyebrow, .contact-copy > p, .contact-side-label { color: #414252; }
.strength-tab strong { font-family: var(--font-display); font-size: clamp(1.75rem, 2.6vw, 2.375rem); font-weight: 400; line-height: 1.2; letter-spacing: -.01em; }
.strength-tab { border-color: #d9ceb8; }
.strength-tab[aria-selected=true], .strength-tab:hover { background: #e9dfcd; }
.strength-fact { color: #6c522e; }
.strength-proof strong { font-family: var(--font-display); font-weight: 400; font-size: 3.5rem; }
.full-cycle-bottom { font-family: var(--font-display); font-weight: 400; letter-spacing: -.01em; }
.full-cycle-bottom > span { font-family: var(--font); }
.project-open h3, .dialog-body h2 { font-size: clamp(1.875rem, 2.65vw, 2.375rem); font-weight: 400; line-height: 1.15; letter-spacing: -.02em; }
.project-tags span { background: var(--white); color: var(--ink); font-weight: 400; }
.service-list h3 { font-size: clamp(1.75rem, 2.4vw, 2.125rem); font-weight: 400; line-height: 1.2; letter-spacing: -.01em; }
.service-tags span { border-color: var(--line); color: #c8ccd7; }
.plus { border-color: #778198; }
.package-name strong { font-family: var(--font-display); font-weight: 400; font-size: 1.875rem; line-height: 1.2; letter-spacing: -.01em; }
.package-price { font-variant-numeric: tabular-nums; font-size: 1.75rem; font-weight: 500; letter-spacing: -.02em; }
.package-price small { font-size: 1rem; }
.package-tabs { background: #e9dfcd; border-color: #cfc3aa; }
.package-tabs button { color: #535969; }
.package-grid, .package-row { border-color: #cfc3aa; }
.package-select { border-color: #b6a783; }
.contact-copy h2 { font-size: clamp(3rem, 4.8vw, 4.5rem); line-height: 1.08; font-weight: 400; letter-spacing: -.03em; }
.contact-copy h2 > span { line-height: 1.08; }
.contact-phone { font-size: 1.5rem; font-weight: 500; }
.brief-panel { background: var(--white); }
.brief-panel h3, .brief-panel h4 { font-size: 2.375rem; line-height: 1.15; font-weight: 400; letter-spacing: -.02em; }
.brief-panel input { background: #eee2ca; border-color: #cbbd9e; color: var(--ink); font-size: 1rem; }
.brief-panel input::placeholder { color: #687081; }
.brief-panel .button, .button { font-family: var(--font); font-size: 1rem; font-weight: 500; }
.button-gold { background: var(--primary); color: var(--ink); }
.button-gold:hover { background: var(--gold); }
.button-dark, .button > span { background: var(--black); }
.button-dark:hover { background: var(--panel); }
.button-dark > span { background: var(--gold); color: var(--black); }
.brief-panel label, .package-tabs button, .text-link, .package-select { font-weight: 500; }
.dialog-body h3 { font-size: 1.75rem; font-weight: 400; line-height: 1.2; letter-spacing: -.01em; }
.dialog-tags > span { border-color: #cfc3aa; }
.selected-request { background: #e9d2a3; color: var(--ink); }
:focus-visible { outline-color: #9d692f; }
.section-dark :focus-visible, .header :focus-visible, .hero :focus-visible { outline-color: var(--gold); }
@media (max-width: 1100px) {
  .desktop-nav, .header-cta { display: none; }
  .menu-toggle { display: flex; width: 44px; height: 44px; background: none; border: 1px solid #778198; flex-direction: column; gap: 6px; justify-content: center; align-items: center; }
  .menu-toggle span { height: 1px; width: 19px; background: var(--white); }
  .mobile-nav:not([hidden]) { display: flex; position: absolute; top: 100%; left: 0; right: 0; background: var(--black); padding: 24px 6% 30px; gap: 22px; flex-direction: column; border-bottom: 1px solid var(--line); border-radius: 0 0 26px 26px; }
  .hero-grid { gap: 2rem; }
  .hero-secondary { font-size: .875rem; }
  .package-row summary { grid-template-columns: 2rem minmax(0,1fr) 10rem 2.5rem; }
}
@media (max-width: 960px) {
  .hero-grid { grid-template-columns: 1fr; gap: 1.5rem; }
  .hero h1 { font-size: clamp(3.5rem, 11vw, 6.5rem); }
  .hero-collage { padding-top: 0; }
}
@media (max-width: 760px) {
  :root { --type-body: 1.125rem; }
  .hero h1 { font-size: clamp(3rem, 11.6vw, 5.25rem); }
  .section-intro h2, .packages .section-intro h2 { font-size: clamp(2.5rem, 8.8vw, 3.5rem); }
  .proof-strip strong, .proof-strip > div:nth-child(3) strong { font-size: 2.375rem; }
  .proof-strip span, .proof-strip > div:nth-child(3) span { font-size: 1rem; }
  .strength-tab strong { font-size: 1.875rem; }
  .strength-tab small { font-size: 1rem; }
  .strength-proof strong { font-size: 3.25rem; }
  .project-open h3, .dialog-body h2 { font-size: 2rem; }
  .service-list h3 { font-size: 1.75rem; }
  .contact-copy h2 { font-size: clamp(3rem, 11vw, 4.5rem); }
  .brief-panel h3, .brief-panel h4 { font-size: 2rem; }
  .package-row summary { grid-template-columns: minmax(0,1fr) 2rem; }
  .package-name strong { font-size: 1.75rem; }
  .dialog-body .button { font-size: .875rem; }
}
@media (max-width: 380px) {
  .hero h1 { font-size: 3rem; }
  .hero-actions .button, .brief-panel .button { font-size: .875rem; }
  .strength-tab strong { font-size: 1.625rem; }
  .project-open h3, .dialog-body h2 { font-size: 1.875rem; }
  .service-list h3 { font-size: 1.625rem; }
  .package-name strong { font-size: 1.5rem; }
  .brief-panel { padding-inline: 1.125rem; }
}

/* Alternating sections use only the two base colours. Gold is an accent. */
.section-dark {
  --section-copy:#c8ccd7; --section-caption:#bcc2d2; --section-title:#f4ead5;
  --section-line:#4a4f61; --section-chip:#243054;
}
.section-light {
  --section-copy:#535969; --section-caption:#626374; --section-title:#111827;
  --section-line:#cfc3aa; --section-chip:#e9dfcd;
}
.section-dark,.section-light { color:var(--section-title); }
.section-dark .section-intro>p,.section-light .section-intro>p,
.projects-intro-copy>p,.project-open>p,.project-meta,.service-content>p,
.service-hint,.service-number,.package-toolbar>span,.package-name small,
.package-details ul,.price-note,.contact-copy>p,.contact-side-label { color:var(--section-copy); }
.section-dark .eyebrow,.section-light .eyebrow,.projects .eyebrow,.contact .eyebrow { color:var(--section-caption); }
.project-open { color:var(--section-title); }
.project-meta { color:var(--section-caption); }
.projects-outro { border-color:var(--section-line); }
.projects-outro .button-dark { background:var(--primary); color:var(--ink); }
.projects-outro .button-dark:hover { background:var(--gold); }
.projects-outro .button-dark>span { background:var(--black); color:var(--white); }
.pill-note { border-color:var(--section-line); }
.services .gold-text { color:var(--black); }
.service-list,.service-list details { border-color:var(--section-line); }
.service-list h3 { color:var(--section-title); }
.service-list details[open] summary h3,.service-list summary:hover h3 { color:#7b572e; }
.service-list .plus { border-color:#a39982; }
.service-list .plus:before,.service-list .plus:after { background:var(--black); }
.service-tags span { border-color:var(--section-line); color:var(--section-copy); }
.service-content .text-link { color:var(--black); }
.package-tabs { background:var(--panel); border-color:var(--section-line); }
.package-tabs button { color:var(--muted); }
.package-tabs button[aria-selected=true] { background:var(--gold); color:var(--ink); }
.package-grid,.package-row { border-color:var(--section-line); }
.package-index { color:var(--section-caption); }
.package-row .plus:before,.package-row .plus:after { background:var(--white); }
.package-row[open] .plus:before,.package-row[open] .plus:after { background:var(--black); }
.package-select { color:var(--white); border-color:var(--section-line); }
.package-select:hover { color:var(--ink); }
.contact .brief-panel { background:#faf5e9; border:1px solid #d8ccb5; box-shadow:0 14px 34px #1a234009; }
.contact-copy h2>span { color:var(--black); }
.contact-side-label { color:var(--section-caption); }
.contact .social-links a { border-color:#b6a783; }
@media(max-width:760px) { .section-light .text-link { color:var(--black); } }

/* Project browsing starts in the first screen. */
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.hero-carousel{width:100%;min-width:0}
.hero-slides{position:relative;aspect-ratio:3/2;border-radius:var(--photo-radius);isolation:isolate;touch-action:pan-y;box-shadow:0 12px 30px #080e1e40,0 3px 8px #080e1e25}
.hero-slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .65s cubic-bezier(.22,1,.36,1),visibility 0s .65s;pointer-events:none}
.hero-slide.is-active{opacity:1;visibility:visible;transition:opacity .65s cubic-bezier(.22,1,.36,1);pointer-events:auto;z-index:1}
.hero-project-open{position:relative;display:block;width:100%;height:100%;padding:0;border:0;border-radius:var(--photo-radius);overflow:hidden;background:var(--panel);color:var(--white);text-align:left;cursor:pointer}
.hero-project-open>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;user-select:none;transition:transform .8s cubic-bezier(.22,1,.36,1)}
.hero-project-open:after{content:'';position:absolute;inset:32% 0 0;background:linear-gradient(transparent,rgba(9,15,31,.88));pointer-events:none}
.hero-project-open:hover>img{transform:scale(1.025)}
.hero-project-caption{position:absolute;left:1.5rem;right:1.5rem;bottom:1.4rem;display:flex;align-items:flex-end;gap:1rem;z-index:1}
.hero-project-caption>span:first-child{min-width:0;flex:1}
.hero-project-caption strong{display:block;font-family:var(--font-display);font-size:clamp(1.75rem,2.5vw,2.5rem);font-weight:400;line-height:1.08;letter-spacing:-.02em;overflow-wrap:anywhere}
.hero-project-caption small{display:block;font-size:.8125rem;line-height:1.5;margin-top:.55rem;color:var(--white)}
.hero-project-link{width:42px;height:42px;flex:0 0 42px;display:grid;place-items:center;border:1px solid #f4ead580;border-radius:50%;background:#f4ead515;backdrop-filter:blur(12px)}
.hero-slider-controls{display:flex;align-items:center;gap:1rem;padding:.9rem .15rem 0}
.hero-slide-count{font-size:.8125rem;font-variant-numeric:tabular-nums;color:var(--muted)}
.hero-slide-dots{display:flex;gap:0;margin-right:auto}
.hero-slide-dots button{position:relative;width:28px;height:44px;border:0;padding:0;background:none}
.hero-slide-dots button:before{content:'';position:absolute;left:50%;top:50%;width:6px;height:6px;border-radius:50%;background:#8e97ad;transform:translate(-50%,-50%);transition:width .4s,background .4s}
.hero-slide-dots button[aria-current=true]:before{width:20px;border-radius:5px;background:var(--gold)}
.hero-slide-arrows{display:flex;gap:.5rem}
.hero-slide-arrows button{width:44px;height:44px;display:grid;place-items:center;border:1px solid #677088;border-radius:50%;background:transparent;color:var(--white);transition:background .25s,color .25s}
.hero-slide-arrows button:hover{background:var(--gold);color:var(--ink)}
.hero-slide-arrows .icon-arrow{width:23px;height:23px}
.hero-collage .glass-note{margin-top:.85rem}
.strength-stage>img{box-shadow:0 12px 28px #11182718,0 3px 8px #11182712}
.project-card:nth-child(n) .project-image{box-shadow:0 12px 30px #080e1e38,0 3px 8px #080e1e20}
.dialog-image{box-shadow:0 10px 24px #11182716}

/* A browsable inventory comes before the packaged offers. */
.inventory-tabs{display:flex;flex-wrap:wrap;gap:.6rem;margin:2rem 0 1.6rem}
.inventory-tabs button{border:1px solid var(--line);border-radius:50px;padding:.8rem 1.5rem;background:transparent;color:var(--muted);font:500 1rem/1.4 var(--font);transition:background .3s,color .3s,border-color .3s}
.inventory-tabs button[aria-selected=true]{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.inventory-tabs button:hover{border-color:var(--gold)}
.inventory-panel{border:1px solid var(--line);border-radius:var(--photo-radius);padding:2rem 2.25rem;scroll-margin-top:7rem}
.inventory-heading{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-items:start;margin-bottom:1rem}
.inventory-heading h3{font:400 2.25rem/1.15 var(--font-display);letter-spacing:-.02em}
.inventory-heading p{font-size:1rem;line-height:1.6;color:var(--muted);max-width:31rem}
.inventory-list{display:grid;grid-template-columns:1fr 1fr;column-gap:3rem;list-style:none;padding:0;margin:0 0 1.4rem}
.inventory-list li{position:relative;padding:1rem 0 1rem 1rem;border-top:1px solid var(--line);font-size:1rem;line-height:1.5;break-inside:avoid}
.inventory-list li:before{content:'';position:absolute;left:0;top:1.6rem;width:4px;height:4px;border-radius:50%;background:var(--gold)}
.inventory-list small{display:block;color:var(--muted);font-size:.875rem;line-height:1.5;margin-top:.25rem}
.inventory-panel .text-link{color:var(--gold)}
.inventory-note{font-size:.875rem;color:var(--muted);margin:1rem .2rem 0}
.package-intro{padding-top:4.5rem;margin-top:2rem;border-top:1px solid var(--line);scroll-margin-top:7rem}
.package-intro h3{font:400 clamp(2rem,3.5vw,3.25rem)/1.1 var(--font-display);letter-spacing:-.02em;margin:.9rem 0 .8rem}
.package-intro>p{font-size:1rem;line-height:1.6;color:var(--muted);margin-bottom:2rem}
.package-tabs{position:relative;isolation:isolate;display:grid;grid-template-columns:1fr 1fr;gap:2px}
.package-tabs:before{content:'';position:absolute;z-index:-1;left:5px;top:5px;bottom:5px;width:calc((100% - 12px)/2);border-radius:50px;background:var(--gold);transform:translateX(0);transition:transform .46s cubic-bezier(.22,1,.36,1)}
.package-tabs[data-active=light]:before{transform:translateX(calc(100% + 2px))}
.package-tabs button,.package-tabs button[aria-selected=true]{position:relative;background:transparent;transition:color .35s}

/* Keep navigation above the stacked sections at every viewport width. */
:root{scroll-padding-top:108px}
.header{position:sticky;top:0;z-index:100;background:rgba(26,35,64,.95);backdrop-filter:blur(18px);border-bottom:2px solid var(--line);box-shadow:0 3px 16px #080e1e1a}
@media(max-width:1100px){
  .mobile-nav:not([hidden]){max-height:calc(100dvh - 92px);overflow-y:auto;box-shadow:0 12px 20px #080e1e22}
}
@media(max-width:760px){
  :root{scroll-padding-top:96px}
  .hero-project-caption{left:1.1rem;right:1.1rem;bottom:1.1rem;gap:.65rem}
  .hero-project-caption strong{font-size:clamp(1.5rem,5.5vw,2.2rem)}
  .hero-project-caption small{font-size:.75rem;line-height:1.45;margin-top:.4rem}
  .hero-project-link{width:36px;height:36px;flex-basis:36px}
  .hero-slider-controls{padding-top:.5rem;gap:.6rem}
  .hero-slide-dots button{width:25px}
  .hero-collage .glass-note{margin-top:.5rem}
  .inventory-tabs{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
  .inventory-tabs button{padding:.75rem .6rem;font-size:.875rem}
  .inventory-panel{padding:1.4rem 1.2rem}
  .inventory-heading{grid-template-columns:1fr;gap:.7rem}
  .inventory-heading h3{font-size:1.875rem}
  .inventory-list{grid-template-columns:1fr;gap:0}
  .inventory-list li{font-size:1rem}
  .package-intro{padding-top:3rem}
  .mobile-nav:not([hidden]){max-height:calc(100dvh - 80px)}
}
@media(prefers-reduced-motion:reduce){
  .hero-slide,.hero-project-open>img,.package-tabs:before,.inventory-tabs button{transition:none}
}

.hero-project-open{user-select:none}
.package-grid,.inventory-panel{overflow-anchor:none}

@media(min-width:1101px) and (max-width:1280px){
  .desktop-nav,.header-cta{display:none}
  .menu-toggle{display:flex;width:44px;height:44px;background:none;border:1px solid #778198;flex-direction:column;gap:6px;justify-content:center;align-items:center}
  .menu-toggle span{height:1px;width:19px;background:var(--white)}
  .mobile-nav:not([hidden]){display:flex;position:absolute;top:100%;left:0;right:0;background:var(--black);padding:24px 6% 30px;gap:22px;flex-direction:column;border-bottom:1px solid var(--line);border-radius:0 0 26px 26px;max-height:calc(100dvh - 92px);overflow-y:auto;box-shadow:0 12px 20px #080e1e22}
}

html.is-scrolling-to-section{scroll-behavior:auto!important;overflow-anchor:none}

/* Liquid glass belongs to working controls and panels, with quiet text surfaces. */
.liquid-glass {
  --glass-tint:26 35 64;
  --glass-edge:244 234 213;
  --glass-opacity:.72;
  --glass-shine:.17;
  --glass-shadow:.22;
  position:relative;
  isolation:isolate;
  border:1px solid rgb(var(--glass-edge) / .28);
  background:linear-gradient(145deg,rgb(255 255 255 / var(--glass-shine)),rgb(255 255 255 / .015) 48%,rgb(var(--glass-edge) / .08)) rgb(var(--glass-tint) / var(--glass-opacity));
  box-shadow:inset 0 1px 0 rgb(255 255 255 / .52),inset 1px 0 0 rgb(255 255 255 / .12),inset 0 -1px 0 rgb(var(--glass-edge) / .13),0 14px 32px rgb(8 14 30 / var(--glass-shadow));
  -webkit-backdrop-filter:blur(20px) saturate(145%);
  backdrop-filter:blur(20px) saturate(145%);
}
.liquid-glass::after {
  content:'';position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none;
  background:radial-gradient(ellipse at var(--glass-x,24%) var(--glass-y,8%),rgb(255 255 255 / .25),transparent 60%);
  box-shadow:inset 0 2px 5px rgb(255 255 255 / .12),inset 0 -3px 6px rgb(var(--glass-edge) / .07);
  opacity:.45;transition:opacity .5s ease;
}
.liquid-glass.is-glass-active::after{opacity:1}
.section-light .liquid-glass {
  --glass-tint:244 234 213;--glass-edge:255 255 255;
  --glass-opacity:.55;--glass-shine:.58;--glass-shadow:.1;
}
.hero-slider-controls.liquid-glass {
  z-index:3;width:min(calc(100% - 2rem),28rem);margin:-1.3rem auto 0;
  padding:.65rem .8rem;gap:.8rem;border-radius:999px;
}
.hero-project-caption{bottom:3.2rem}
.hero-slide-count{color:var(--white)}
.hero-slide-arrows button {
  border-color:rgb(244 234 213 / .38);
  background:linear-gradient(145deg,#ffffff1c,#ffffff03);
  box-shadow:inset 0 1px 0 #ffffff38,0 3px 9px #080e1e20;
}
.hero-slide-arrows button:hover{background:var(--gold);color:var(--ink)}
.inventory-panel.liquid-glass {
  --glass-opacity:.78;--glass-shine:.105;
  border-radius:var(--photo-radius);
}
.inventory-tabs button {
  color:var(--white);border-color:#f4ead54d;
  background:linear-gradient(150deg,#ffffff1f,#ffffff03) #1a234073;
  box-shadow:inset 0 1px 0 #ffffff38,0 5px 12px #080e1e1a;
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
}
.inventory-tabs button[aria-selected=true] {
  background:linear-gradient(150deg,#fff4d4b3,transparent 65%),var(--gold);
  border-color:#fff4d4b3;color:var(--ink);
  box-shadow:inset 0 1px 1px #ffffffd9,inset 0 -2px 3px #97753c40,0 5px 15px #080e1e29;
}
.package-tabs.liquid-glass{--glass-opacity:.6}
.package-tabs:before {
  background:linear-gradient(150deg,#fff4d4b3,transparent 65%),var(--gold);
  box-shadow:inset 0 1px 1px #ffffffd9,inset 0 -2px 3px #97753c40,0 3px 10px #080e1e33;
}
.contact .brief-panel.liquid-glass {
  background:linear-gradient(145deg,#ffffff94,#ffffff26 48%,#ffffff70) rgb(var(--glass-tint) / var(--glass-opacity));
  border-color:#ffffffc4;
  box-shadow:inset 0 1px 1px #fffffff2,inset 1px 0 0 #ffffff80,inset 0 -1px 1px #b5a07840,0 18px 38px #1a23401a;
}
.brief-panel.liquid-glass input:not([aria-invalid=true]) {
  background:#fffaf080;border-color:#bcb29b;
  box-shadow:inset 0 1px 3px #7467500c,0 1px 0 #ffffffbd;
}
.brief-panel.liquid-glass input::placeholder{color:#626374}
@media(max-width:760px) {
  .hero-slider-controls.liquid-glass{width:calc(100% - 1rem);margin-top:-1rem;padding:.5rem .6rem;gap:.5rem}
  .hero-slide-dots button{width:24px}
  .hero-project-caption{bottom:2.7rem}
}
@media(max-width:380px){.hero-slide-count{display:none}}
@media(prefers-reduced-motion:reduce){.liquid-glass::after{transition:none}}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) {
  .liquid-glass{--glass-opacity:.97}
}

/* Почта в шапке — тем же набором, что телефон. На узких экранах в строку
   не помещается, поэтому прячем раньше телефона: контакты есть в подвале. */
.header-lines{display:flex;flex-direction:column;align-items:flex-end;gap:1px;line-height:1.25}
.header-mail{font-size:.82rem;font-weight:500;white-space:nowrap;letter-spacing:.01em;color:#b9bbae;transition:color .2s}
.header-mail:hover{color:var(--gold)}
/* В столбик почта занимает не больше телефона, поэтому прячем её вместе
   с ним — на узких экранах контакты остаются в подвале. */
@media(max-width:760px){.header-mail{display:none}}

/* ── правки 29.09.2026 ────────────────────────────────────────────── */

/* Одинокие слова в конце заголовков и абзацев.
   balance выравнивает строки заголовка, pretty не даёт последней строке
   абзаца остаться с одним словом. */
h1, h2, h3, h4, .hero-title, .section-intro > p, .full-cycle-bottom {
  text-wrap: balance;
}
p, .service-content > p, .strength-detail > p, .project-card p, li {
  text-wrap: pretty;
}

/* Ссылка на телеграм-канал стояла у правого края и пряталась под
   кнопкой чата. Отодвигаем ряд от правого края на ширину кнопки. */
.footer-bottom { padding-right: 150px; }
@media (max-width: 760px) {
  .footer-bottom { padding-right: 0; flex-wrap: wrap; }
  .footer-bottom > a { order: -1; width: 100%; }
}

/* Значки соцсетей: рисунок вместо букв. У MAX своего значка нет —
   оставляем буквы, но набираем мельче, чтобы кружок был того же размера. */
.footer-social-icon > svg { display: block; }
.footer-social-max { font-size: .62rem; letter-spacing: .04em; }

/* Кнопка чата на светлом фоне: тёмная плашка на белом смотрится пятном. */
.chat-pill.on-light {
  background: #ffffffee;
  color: var(--ink);
  border-color: #00000022;
  box-shadow: 0 12px 30px #0000001a;
}
.chat-pill.on-light svg { color: #8b6a14; }
.chat-pill.on-light:hover { background: var(--gold); color: var(--black); }

/* Телефон: кнопка чата компактнее, чтобы не закрывала содержимое. */
@media (max-width: 760px) {
  .chat-pill { right: 14px; bottom: 14px; padding: 10px 14px 10px 12px; font-size: 13px; gap: 7px; }
  .chat-pill svg { width: 17px; height: 17px; flex: 0 0 17px; }
}

/* «Вам — быть в моменте» и «Нам — сделать так, чтобы всё случилось»:
   один размер, но по разным углам. Прижатие вправо (margin-left:auto)
   сохраняем — без него фразы слипаются в одну строку. */
.full-cycle-bottom > span {
  font-family: var(--font-display);
  font-style: italic;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  line-height: inherit;
  color: inherit;
  margin-left: auto;
  text-align: right;
}
@media (max-width: 1100px) {
  .full-cycle-bottom > span { width: auto; margin-top: 0; margin-left: auto; }
}
@media (max-width: 760px) {
  .full-cycle-bottom > span { font-size: inherit; line-height: inherit; margin-top: 4px; }
}

/* ── партнёры: краткая информация по нажатию ──────────────────────── */
/* Только по нажатию, без наведения. Цвет эмблем не трогаем. */
.partner {
  position: relative;
  display: inline-flex;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
}
.partner:focus-visible { outline: 3px solid var(--gold); outline-offset: 6px; border-radius: 10px; }
.partner.is-open .partner-logo { filter: none; opacity: 1; }

.partner-card {
  position: absolute;
  left: 50%;
  top: calc(100% + 12px);
  z-index: 40;
  width: max-content;
  max-width: min(300px, 78vw);
  padding: 14px 16px;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: 0 18px 40px #05070f66;
  text-align: left;
  transform: translateX(-50%);
  display: none;
}
.partner.is-open .partner-card { display: block; }
.partner-card strong {
  display: block;
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 400;
  color: var(--gold);
  margin-bottom: 6px;
}
.partner-card small { display: block; font-size: .85rem; line-height: 1.55; color: var(--white); }

/* Во второй строке снизу места нет — открываем вверх. */
.partners-row + .partners-row .partner-card { top: auto; bottom: calc(100% + 12px); }

/* Кнопка MAX под Telegram и ВКонтакте: в том же стиле, по ширине этих двух кнопок */
.social-links:has(.social-max){display:inline-grid;grid-template-columns:repeat(2,auto)}
.social-links .social-max{grid-column:1/-1;justify-content:space-between}

/* Описание в карусели — до 3 строк (на телефоне до 2), без обрыва коротких текстов */
.hero-3d-info p{-webkit-line-clamp:3}
@media(max-width:760px){.hero-3d-info p{-webkit-line-clamp:2}}
/* В окне кейса — то же описание, что в карусели */
.dialog-body .dialog-lead{margin:18px 0 0;font-size:17px;line-height:1.7;color:var(--ink)}
/* Каталог: напоминание, что оборудование не ограничено списком */
.inventory-more{margin:18px 0 0;font-size:15px;line-height:1.6;opacity:.8}
/* Логотипы партнёров на светлых подложках: тёмные логотипы больше не сливаются с фоном */
.partner-logo{background:#f4ead5;padding:8px 14px;border-radius:14px;box-sizing:content-box;filter:none;opacity:.88}
.partner-logo:hover,.partner.is-open .partner-logo{opacity:1}

/* Несколько фото в кейсе: крупное сверху, под ним сетка миниатюр */
.dialog-gallery{margin:0}
.dialog-thumbs{display:grid;grid-template-columns:repeat(8,1fr);gap:8px;padding:12px 40px 0}
.dialog-thumb{padding:0;border:2px solid transparent;border-radius:12px;overflow:hidden;background:none;cursor:pointer;aspect-ratio:3/2;opacity:.72;transition:opacity .2s,border-color .2s}
.dialog-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.dialog-thumb:hover,.dialog-thumb.is-active{opacity:1}
.dialog-thumb.is-active{border-color:var(--gold,#c9a24a)}
.dialog-thumb:focus-visible{outline:2px solid var(--gold,#c9a24a);outline-offset:2px}
@media(max-width:760px){.dialog-thumbs{grid-template-columns:repeat(4,1fr);gap:6px;padding:8px 23px 0}}

/* Подпись автора фото (лицензия CC BY) */
.dialog-body .dialog-credit{margin:22px 0 0;font-size:12px;line-height:1.5;opacity:.6}

/* Подпись к иконкам соцсетей в подвале */
.footer-social{align-items:center}
.footer-social-title{margin-right:10px;font-size:16px;font-weight:400;line-height:1.6;color:#c8ccd7}

/* Подпись над кнопками мессенджеров в контактах */
.contact-copy .social-links-title{grid-column:1/-1;justify-self:center;margin:0 0 4px;font-size:15px;font-weight:600;letter-spacing:.01em;color:var(--ink)}

/* Ссылку на телеграм-канал убрали. Город и подпись стоят по центру подвала,
   копирайт слева. Отступ справа под кнопку чата больше не нужен. */
.footer-bottom{display:grid;grid-template-columns:1fr auto 1fr;padding-right:0}
.footer-bottom>span:nth-child(2){grid-column:2;text-align:center}
@media (max-width: 760px){
  .footer-bottom{grid-template-columns:1fr;justify-items:center;text-align:center}
  .footer-bottom>span:nth-child(2){grid-column:1;width:auto;order:0}
  /* запас снизу, чтобы строку не закрывала кнопка «Онлайн-чат» */
  .footer-bottom{padding-bottom:64px}
}

/* Патч «проекты по четыре» (quant-project-pagination.patch), перенесён вручную */
/* Navigation for groups of four projects; hidden cards also leave keyboard navigation. */
.project-card[hidden],.project-pagination[hidden]{display:none}
.project-pagination{display:flex;align-items:center;justify-content:flex-end;gap:22px;margin:0 0 22px;color:var(--white)}
.project-page-status{font-size:.875rem;font-variant-numeric:tabular-nums;color:var(--muted)}
.project-page-buttons{display:flex;gap:10px}
.project-page-buttons button{width:46px;height:46px;display:grid;place-items:center;border:1px solid var(--gold);border-radius:50%;background:transparent;color:var(--gold);cursor:pointer;transition:background .2s,color .2s,opacity .2s}
.project-page-buttons svg{width:24px;height:24px}
.project-page-buttons button:hover:not(:disabled){background:var(--gold);color:var(--black)}
.project-page-buttons button:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
.project-page-buttons button:disabled{opacity:.3;cursor:default}
@media(max-width:680px){.project-pagination{justify-content:space-between;gap:16px;margin-bottom:18px}}

/* MAX: подпись по центру кнопки, стрелка остаётся у правого края */
.social-links .social-max{position:relative;justify-content:center}
.social-links .social-max>span{position:absolute;right:17px;top:50%;transform:translateY(-50%);display:flex}

/* Кнопка игры над кнопкой чата: в игру можно сыграть без чата. */
.game-pill{bottom:80px}
.game-pill-short{display:none}
@media (max-width: 760px){
  .game-pill{bottom:64px}
  .game-pill-long{display:none}
  .game-pill-short{display:inline}
}
@media print{.game-pill{display:none}}
/* Игра, открытая отдельно: справа над кнопками, без окна чата рядом. */
.wait-game.wait-game--solo{right:20px;bottom:140px;width:min(460px,calc(100vw - 40px))}
@media (max-width: 899px){
  .wait-game.wait-game--solo{right:auto;bottom:auto}
}
/* Заставка игры: условия скидки и две кнопки. */
.wg-cover p{max-width:400px;margin-left:auto;margin-right:auto}
.wg-cover p+p{margin-top:-8px}
.wg-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:10px}
.wg-cover button.wg-secondary{background:transparent;color:var(--white);border:1px solid #f4ead566}
.wg-cover button.wg-secondary:hover{border-color:var(--gold);color:var(--gold)}
.game-pill{transition:background .2s,color .2s,transform .2s,opacity .25s}
.game-pill.is-away{opacity:0;pointer-events:none;transform:translateY(8px)}
