/* ==========================================================================
   Atlas Holly - marketing site (locked brand).
   Recreated from the Fable design handoff (design_handoff_atlas_holly).
   Bricolage Grotesque (display) · Familjen Grotesk (body) · IBM Plex Mono.
   Warm off-white canvas, ink text, lime brand accent.
   Tokens here are intentionally fixed - this is Atlas Holly's own site, not a
   themeable customer site.
   ========================================================================== */

:root {
    --ah-lime: oklch(0.96 0.18 115.3);
    --ah-lime-tint: oklch(0.98 0.09 115.3);
    --ah-lime-border: oklch(0.85 0.16 115.3);
    --ah-green-dot: oklch(0.75 0.18 130);

    --ah-ink: #201f1a;
    --ah-ink-card: #2c2b24;
    --ah-bg: #faf8f1;
    --ah-surface: #fff;
    --ah-alt: #fcfbf6;

    --ah-bd-card: #eeeadd;
    --ah-bd-input: #e6e2d4;
    --ah-bd-row: #f0ecdf;

    --ah-muted: #5c5b50;
    --ah-muted-2: #6b6a5e;
    --ah-cap: #8b8a7c;
    --ah-dash: #c9c5b2;
    --ah-list: #3d3c33;
    --ah-on-ink: #b9b8ab;

    --ah-display: 'Bricolage Grotesque', system-ui, sans-serif;
    --ah-body: 'Familjen Grotesk', system-ui, sans-serif;
    --ah-mono: 'IBM Plex Mono', ui-monospace, monospace;

    --ah-shadow-mock: 0 24px 60px -30px rgba(60, 55, 30, .35);
    --ah-shadow-card: 0 18px 44px -26px rgba(60, 55, 30, .3);
    --ah-shadow-pop: 0 16px 40px -24px rgba(60, 55, 30, .4);

    --ah-max: 1120px;
    --ah-pad: clamp(20px, 5vw, 48px);
    --ah-photo: repeating-linear-gradient(45deg, rgba(90, 85, 60, .07) 0 10px, rgba(90, 85, 60, .02) 10px 20px), #efece0;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
    margin: 0;
    font-family: var(--ah-body);
    font-size: 17.5px;
    line-height: 1.6;
    color: var(--ah-ink);
    background: var(--ah-bg);
    -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
h1, h2, h3, h4 { font-family: var(--ah-display); margin: 0; }

.container { width: 100%; max-width: var(--ah-max); margin: 0 auto; padding: 0 var(--ah-pad); }
.skip-link { position: absolute; left: -9999px; }
.skip-link:focus { left: 1rem; top: 1rem; background: #fff; padding: .5rem 1rem; z-index: 100; }

/* ===== Buttons (pills) ===================================================== */
.ah-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    font-family: var(--ah-body); font-weight: 600; font-size: 18.5px;
    padding: 16px 30px; border-radius: 99px; text-decoration: none;
    border: 1.5px solid transparent; cursor: pointer; transition: transform .12s ease, opacity .12s ease, background .12s ease;
    line-height: 1;
}
.ah-btn:hover { transform: translateY(-1px); }
.ah-btn--primary { background: var(--ah-ink); color: var(--ah-lime); }
.ah-btn--primary:hover { background: #14130f; }
.ah-btn--secondary { background: #fff; border-color: var(--ah-ink); color: var(--ah-ink); }
.ah-btn--secondary:hover { background: var(--ah-bg); }
.ah-btn--sm { font-size: 16.5px; padding: 11px 22px; }
/* On lime backgrounds, the "secondary" outline sits on lime, not white. */
.ah-on-lime .ah-btn--secondary { background: transparent; }

/* ===== Eyebrow / badges =================================================== */
.ah-badge {
    display: inline-flex; align-items: center; gap: 8px;
    background: #fff; border: 1px solid var(--ah-bd-input); border-radius: 99px;
    padding: 7px 16px; font-size: 15.5px; font-weight: 500; color: var(--ah-muted-2);
}
.ah-badge__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ah-green-dot); }
.ah-badge--lime { background: var(--ah-lime); border: none; color: var(--ah-ink); font-weight: 600; font-size: 15px; padding: 6px 14px; }
.ah-mono { font-family: var(--ah-mono); }

/* ===== NAV-01 ============================================================= */
.c-nav { background: var(--ah-lime); position: sticky; top: 0; z-index: 50; box-shadow: 0 1px 8px rgba(32,31,26,.07); }
.c-nav__inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 16px var(--ah-pad); }
.c-nav__logo { display: inline-flex; align-items: center; gap: 10px; font-family: var(--ah-display); font-weight: 700; font-size: 20px; color: var(--ah-ink); text-decoration: none; }
.c-nav__logo::before { content: "A"; display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 9px; background: var(--ah-ink); color: var(--ah-lime); font-family: var(--ah-display); font-weight: 800; font-size: 17px; }
.c-nav__logo-img { max-height: 60px; width: auto; }
.c-nav__logo--img::before { content: none; }
.c-nav__links { display: flex; align-items: center; gap: 28px; list-style: none; margin: 0; padding: 0; }
.c-nav__link { color: var(--ah-ink); text-decoration: none; font-size: 1.3rem; font-weight: 500; }
.c-nav__link:hover { opacity: .7; }
.c-nav__link--button { background: var(--ah-ink); color: var(--ah-bg); padding: 11px 20px; border-radius: 99px; font-weight: 600; }
.c-nav__link--button:hover { opacity: 1; background: #14130f; }
.c-nav__hamburger { display: none; flex-direction: column; gap: 5px; background: none; border: 0; cursor: pointer; padding: 8px; }
.c-nav__hamburger span { width: 24px; height: 2px; background: var(--ah-ink); display: block; }
.c-nav__mobile { position: fixed; inset: 0; background: var(--ah-lime); transform: translateX(100%); transition: transform .25s ease; z-index: 60; padding: 5rem 1.5rem; display: flex; flex-direction: column; gap: 1.25rem; align-items: center; text-align: center; }
.c-nav__mobile.is-open { transform: translateX(0); }
.c-nav__mobile a { font-size: 1.3rem; color: var(--ah-ink); text-decoration: none; font-weight: 600; }
.c-nav__mobile-close { position: absolute; top: 1.25rem; right: 1.25rem; font-size: 2rem; background: none; border: 0; cursor: pointer; line-height: 1; }
@media (max-width: 860px) {
    .c-nav__links { display: none; }
    .c-nav__hamburger { display: flex; }
}

/* Language switcher */
.c-lang { position: relative; }
.c-lang__toggle { background: none; border: 1px solid var(--ah-ink); border-radius: 99px; padding: .4rem .7rem; font: inherit; font-weight: 600; cursor: pointer; color: var(--ah-ink); }
.c-lang__menu { position: absolute; right: 0; top: calc(100% + .4rem); background: #fff; border: 1px solid var(--ah-bd-input); border-radius: 12px; box-shadow: 0 8px 24px rgba(0,0,0,.1); list-style: none; margin: 0; padding: .35rem; min-width: 160px; display: none; z-index: 70; }
.c-lang.is-open .c-lang__menu { display: block; }
.c-lang__menu a { display: block; padding: .45rem .6rem; border-radius: 8px; color: var(--ah-ink); text-decoration: none; }
.c-lang__menu a:hover { background: var(--ah-bg); }
.c-lang__menu a[aria-current="true"] { font-weight: 700; }
.c-nav__mobile-langs { margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid rgba(32,31,26,.15); display: flex; flex-wrap: wrap; gap: .75rem; justify-content: center; }

/* ===== FOOTER-01 ========================================================== */
.c-footer { background: var(--ah-lime); color: var(--ah-ink); padding: 64px 0 40px; }
.c-footer__inner { max-width: var(--ah-max); margin: 0 auto; padding: 0 var(--ah-pad); }
.c-footer__top { display: flex; justify-content: space-between; align-items: flex-start; gap: 40px; padding-bottom: 44px; border-bottom: 1px solid rgba(32,31,26,.15); flex-wrap: wrap; }
.c-footer__brand { max-width: 420px; }
.c-footer__name { font-family: var(--ah-display); font-weight: 800; font-size: 36px; line-height: 1.1; margin: 0 0 18px; }
.c-footer__about { margin: 0 0 18px; }
.c-footer__cols { display: flex; gap: 64px; font-size: 1.3rem; flex-wrap: wrap; }
.c-footer__col { display: flex; flex-direction: column; gap: 10px; }
.c-footer__heading { font-size: 15px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.c-footer__col a { color: var(--ah-ink); text-decoration: none; }
.c-footer__col a:hover { opacity: .65; }
.c-footer__logo { display: flex; justify-content: center; padding: 36px 0 24px; }
.c-footer__logo img { height: 80px; width: auto; }
.c-footer__legal { display: flex; justify-content: space-between; gap: 16px; padding-top: 20px; font-size: 15px; color: rgba(32,31,26,.65); flex-wrap: wrap; }
@media (max-width: 720px) {
    .c-footer__top { flex-direction: column; align-items: center; text-align: center; }
    .c-footer__brand { text-align: center; }
    .c-footer__cols { justify-content: center; text-align: center; gap: 40px; }
    .c-footer__col { align-items: center; }
    .c-footer__legal { flex-direction: column; align-items: center; text-align: center; }
}

/* ===== Generic section rhythm ============================================ */
.ah-section { padding: 96px 0; }
.ah-section--tight { padding: 80px 0; }
.ah-section__inner { max-width: var(--ah-max); margin: 0 auto; padding: 0 var(--ah-pad); }
.ah-section-head { text-align: center; max-width: 640px; margin: 0 auto 52px; }
.ah-h2 { font-family: var(--ah-display); font-weight: 700; font-size: clamp(34px, 5vw, 48px); line-height: 1.1; letter-spacing: -0.015em; margin: 0 0 14px; }
.ah-lede { font-size: 21px; line-height: 1.6; color: var(--ah-muted); margin: 0; }
@media (max-width: 700px) { .ah-section, .ah-section--tight { padding: 64px 0; } }

/* ==========================================================================
   BLOCKS
   ========================================================================== */

/* ---- HERO-01: centered + browser mock ---- */
.ah-hero1 { padding: 80px 0 0; text-align: center; }
.ah-hero1__head { max-width: 820px; margin: 0 auto; padding: 0 var(--ah-pad); }
.ah-hero1__title { font-family: var(--ah-display); font-weight: 800; font-size: clamp(38px, 6vw, 62px); line-height: 1.05; letter-spacing: -0.02em; margin: 26px 0 20px; }
/* Typewriter industry word in the hero: the word types out and deletes,
   the caret blinks - a frozen glance still reads as "this is cycling". */
.ah-rotator { color: var(--ah-accent, #1a1a2e); }
.ah-caret { display: inline-block; width: 3px; height: 0.82em; margin-left: 4px; background: var(--ah-accent, #1a1a2e); vertical-align: baseline; transform: translateY(0.08em); animation: ah-caret-blink 0.9s steps(1) infinite; }
@keyframes ah-caret-blink { 50% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .ah-caret { animation: none; } }
.ah-hero1__sub { font-size: 21px; line-height: 1.55; color: var(--ah-muted); margin: 0 auto; max-width: 620px; }
.ah-hero1__actions { display: flex; gap: 14px; justify-content: center; margin: 32px 0 14px; flex-wrap: wrap; }
.ah-hero1__trust { font-size: 16px; color: var(--ah-cap); margin: 0; }

/* Browser mock */
/* Industry rotation: the mock's text content cross-fades between
   variants (hero_centered's data-mock slots). */
.ah-mock__url, .ah-mock__brand, .ah-mock__col { transition: opacity .26s ease; }
.ah-mock--swap .ah-mock__url, .ah-mock--swap .ah-mock__brand, .ah-mock--swap .ah-mock__col { opacity: 0; }
.ah-mock { max-width: 980px; margin: 52px auto 0; background: #fff; border: 1px solid var(--ah-bd-input); border-radius: 18px 18px 0 0; box-shadow: var(--ah-shadow-mock); overflow: hidden; text-align: left; }
.ah-mock__bar { display: flex; align-items: center; gap: 10px; padding: 12px 18px; border-bottom: 1px solid var(--ah-bd-card); background: var(--ah-alt); }
.ah-mock__dot { width: 11px; height: 11px; border-radius: 50%; background: #e4e0d2; }
.ah-mock__url { flex: 1; max-width: 380px; margin: 0 auto; background: #f2efe5; border-radius: 8px; padding: 6px 14px; font-family: var(--ah-mono); font-size: 14.5px; color: #7a796c; text-align: center; }
.ah-mock__top { display: flex; justify-content: space-between; align-items: center; padding: 16px 32px; border-bottom: 1px solid var(--ah-bd-row); }
.ah-mock__brand { font-family: var(--ah-display); font-weight: 700; font-size: 17.5px; }
.ah-mock__nav { display: flex; gap: 18px; font-size: 15px; color: var(--ah-muted-2); align-items: center; }
.ah-mock__nav-cta { background: var(--ah-lime); padding: 7px 14px; border-radius: 99px; font-weight: 600; color: var(--ah-ink); }
.ah-mock__body { display: grid; grid-template-columns: 1.1fr 1fr; gap: 0; }
.ah-mock__col { padding: 44px 32px 40px; position: relative; }
.ah-mock__h { font-family: var(--ah-display); font-weight: 700; font-size: 30px; line-height: 1.15; margin: 0 0 12px; position: relative; display: inline-block; }
.ah-mock__p { font-size: 16.5px; line-height: 1.6; color: var(--ah-muted-2); margin: 0 0 20px; position: relative; display: inline-block; }
.ah-mock__services { display: flex; flex-direction: column; gap: 8px; max-width: 340px; }
.ah-mock__srow { display: flex; justify-content: space-between; background: var(--ah-bg); border: 1px solid var(--ah-bd-card); border-radius: 10px; padding: 11px 14px; font-size: 15.5px; position: relative; }
.ah-mock__srow strong { font-weight: 600; }
.ah-mock__srow span { color: var(--ah-muted-2); }
.ah-mock__photo { background: var(--ah-photo); background-size: cover; background-position: center; display: flex; align-items: center; justify-content: center; min-height: 280px; }
.ah-pencil { position: absolute; width: 26px; height: 26px; border-radius: 50%; background: var(--ah-lime); display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 2px 8px rgba(60,55,30,.25); }
.ah-pencil--h { top: -12px; right: -34px; }
.ah-pencil--p { bottom: -8px; right: -30px; }
.ah-pencil--row { top: -10px; right: -10px; }
.ah-ph { font-family: var(--ah-mono); font-size: 14px; color: var(--ah-cap); background: #fff; padding: 6px 12px; border-radius: 6px; border: 1px dashed var(--ah-dash); }
@media (max-width: 760px) { .ah-mock__body { grid-template-columns: 1fr; } .ah-mock__nav { display: none; } }

/* ---- HERO-02: split with photo + booking card ---- */
.ah-hero2 { padding: 80px 0; }
.ah-hero2__grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: 56px; align-items: center; }
.ah-hero2__title { font-family: var(--ah-display); font-weight: 800; font-size: clamp(36px, 5vw, 54px); line-height: 1.05; letter-spacing: -0.02em; margin: 24px 0 18px; }
.ah-hero2__sub { font-size: 20px; line-height: 1.55; color: var(--ah-muted); margin: 0 0 30px; max-width: 480px; }
.ah-hero2__actions { display: flex; gap: 14px; margin-bottom: 14px; flex-wrap: wrap; }
.ah-hero2__trust { font-size: 16px; color: var(--ah-cap); margin: 0; }
.ah-hero2__media { position: relative; }
.ah-hero2__photo { height: 470px; border-radius: 18px; background: var(--ah-photo); background-size: cover; background-position: center; display: flex; align-items: center; justify-content: center; border: 1px solid var(--ah-bd-input); }
.ah-bookcard { position: absolute; left: 24px; right: 24px; bottom: 24px; background: #fff; border: 1px solid var(--ah-bd-card); border-radius: 14px; padding: 16px 20px; display: flex; justify-content: space-between; align-items: center; box-shadow: 0 18px 40px -18px rgba(60,55,30,.35); }
.ah-bookcard__eyebrow { font-family: var(--ah-mono); font-weight: 600; font-size: 13px; color: var(--ah-cap); letter-spacing: .06em; margin-bottom: 4px; }
.ah-bookcard__title { font-family: var(--ah-display); font-weight: 700; font-size: 18.5px; }
.ah-bookcard__pill { background: var(--ah-lime); font-size: 15px; font-weight: 700; padding: 8px 16px; border-radius: 99px; white-space: nowrap; }
@media (max-width: 820px) { .ah-hero2__grid { grid-template-columns: 1fr; } }

/* ---- HERO-03: video background ---- */
.ah-hero3 { position: relative; min-height: 580px; display: flex; align-items: center; justify-content: center; text-align: center; overflow: hidden; background: #26251e; }
.ah-hero3__video, .ah-hero3__poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ah-hero3__scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(24,23,18,.45) 0%, rgba(24,23,18,.72) 100%); }
.ah-hero3__inner { position: relative; max-width: 760px; padding: 64px 48px; }
.ah-hero3 .ah-badge { background: rgba(250,248,241,.12); border: 1px solid rgba(250,248,241,.25); color: #e8e6da; }
.ah-hero3 .ah-badge__dot { background: var(--ah-lime); }
.ah-hero3__title { font-family: var(--ah-display); font-weight: 800; font-size: clamp(38px, 6vw, 60px); line-height: 1.05; letter-spacing: -0.02em; color: var(--ah-bg); margin: 24px 0 18px; }
.ah-hero3__sub { font-size: 20px; line-height: 1.55; color: #c9c7ba; margin: 0 0 30px; }
.ah-hero3__actions { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
.ah-hero3 .ah-btn--primary { background: var(--ah-lime); color: var(--ah-ink); font-weight: 700; }
.ah-hero3 .ah-btn--secondary { background: transparent; border-color: rgba(250,248,241,.5); color: var(--ah-bg); }

/* ---- HERO-04: lime statement ---- */
.ah-hero4 { background: var(--ah-lime); padding: 96px 0 88px; text-align: center; }
.ah-hero4__inner { max-width: 900px; margin: 0 auto; padding: 0 var(--ah-pad); }
.ah-hero4__title { font-family: var(--ah-display); font-weight: 800; font-size: clamp(40px, 7vw, 68px); line-height: 1.02; letter-spacing: -0.025em; margin: 0 0 22px; }
.ah-hero4__sub { font-size: 21px; line-height: 1.55; color: rgba(32,31,26,.7); margin: 0 auto 34px; max-width: 600px; }
.ah-hero4__actions { display: flex; gap: 14px; justify-content: center; margin-bottom: 20px; flex-wrap: wrap; }
.ah-hero4__trust { font-family: var(--ah-mono); font-size: 14.5px; letter-spacing: .08em; color: rgba(32,31,26,.55); margin: 0; text-transform: uppercase; }

/* ---- FEATURE-01: pencil story ---- */
.ah-feat1__grid { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1.15fr; gap: 64px; align-items: center; }
.ah-feat1__title { font-family: var(--ah-display); font-weight: 700; font-size: clamp(30px, 4vw, 42px); line-height: 1.1; letter-spacing: -0.015em; margin: 18px 0 16px; }
.ah-feat1__body p { font-size: 19px; line-height: 1.6; color: var(--ah-muted); margin: 0 0 18px; }
.ah-feat1__body p:last-child { margin-bottom: 0; }
.ah-adminmock { background: var(--ah-bg); border: 1px solid var(--ah-bd-card); border-radius: 16px; overflow: hidden; box-shadow: var(--ah-shadow-card); }
.ah-adminmock__row { display: flex; }
.ah-adminmock__side { width: 170px; background: var(--ah-ink); color: var(--ah-on-ink); padding: 18px 0; font-size: 15px; flex-shrink: 0; }
.ah-adminmock__side-h { padding: 8px 18px; font-family: var(--ah-mono); font-weight: 600; font-size: 13px; color: #7a796c; letter-spacing: .08em; }
.ah-adminmock__side-item { padding: 9px 18px; }
.ah-adminmock__side-item--active { background: var(--ah-lime); color: var(--ah-ink); font-weight: 600; border-radius: 0 99px 99px 0; margin-right: 14px; }
.ah-adminmock__panel { flex: 1; padding: 22px 24px; }
.ah-adminmock__crumb { font-family: var(--ah-mono); font-weight: 600; font-size: 13px; color: var(--ah-cap); letter-spacing: .06em; margin-bottom: 8px; }
.ah-adminmock__title { font-weight: 700; font-size: 18.5px; margin-bottom: 14px; }
.ah-adminmock__label { font-size: 14px; font-weight: 600; color: var(--ah-muted-2); margin-bottom: 5px; }
.ah-adminmock__input { background: #fff; border: 1px solid var(--ah-bd-input); border-radius: 9px; padding: 9px 12px; font-size: 16px; margin-bottom: 12px; }
.ah-adminmock__input--active { border: 1.5px solid var(--ah-lime-border); }
.ah-adminmock__input--sm { max-width: 140px; margin-bottom: 16px; }
.ah-adminmock__actions { display: flex; gap: 8px; align-items: center; }
.ah-adminmock__save { background: var(--ah-ink); color: var(--ah-bg); font-size: 15px; font-weight: 600; padding: 9px 18px; border-radius: 99px; }
.ah-adminmock__preview { color: var(--ah-cap); font-size: 15px; font-weight: 500; padding: 9px 10px; }
@media (max-width: 820px) { .ah-feat1__grid { grid-template-columns: 1fr; gap: 40px; } }

/* ---- FEATURE-02: booking 3-step ---- */
.ah-steps { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 20px; max-width: 1080px; margin: 0 auto; }
.ah-step { background: #fff; border: 1px solid var(--ah-bd-card); border-radius: 16px; padding: 22px; }
.ah-step--ink { background: var(--ah-ink); color: var(--ah-bg); }
.ah-step__label { font-family: var(--ah-mono); font-weight: 600; font-size: 14px; color: var(--ah-cap); margin-bottom: 14px; }
.ah-step--ink .ah-step__label { color: var(--ah-lime); }
.ah-optlist { display: flex; flex-direction: column; gap: 8px; }
.ah-opt { display: flex; align-items: center; gap: 10px; border: 1px solid var(--ah-bd-input); border-radius: 10px; padding: 11px 13px; font-size: 16px; color: var(--ah-muted); }
.ah-opt--sel { border: 1.5px solid var(--ah-ink); background: var(--ah-lime-tint); font-weight: 600; color: var(--ah-ink); }
.ah-opt__radio { width: 16px; height: 16px; border-radius: 50%; border: 1.5px solid var(--ah-dash); background: #fff; flex-shrink: 0; }
.ah-opt--sel .ah-opt__radio { border: 5px solid var(--ah-ink); }
.ah-opt__up { margin-top: 14px; border-top: 1px dashed var(--ah-bd-input); padding-top: 12px; font-size: 15px; color: var(--ah-muted-2); display: flex; justify-content: space-between; }
.ah-slots { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; }
.ah-slot { border: 1px solid var(--ah-bd-input); border-radius: 9px; padding: 9px 0; text-align: center; font-size: 15.5px; color: var(--ah-muted); }
.ah-slot--sel { border: 1.5px solid var(--ah-ink); background: var(--ah-lime); font-weight: 700; color: var(--ah-ink); }
.ah-slot--taken { color: var(--ah-dash); text-decoration: line-through; }
.ah-step__day { font-size: 16px; font-weight: 600; margin-bottom: 10px; }
.ah-step__note { margin-top: 14px; font-size: 15px; color: var(--ah-muted-2); }
.ah-bookline { background: var(--ah-ink-card); border-radius: 12px; padding: 14px; margin-bottom: 10px; }
.ah-bookline__top { display: flex; justify-content: space-between; font-size: 15.5px; margin-bottom: 6px; }
.ah-bookline__top span { color: var(--ah-lime); font-weight: 700; }
.ah-bookline__meta { font-size: 14.5px; color: var(--ah-on-ink); }
.ah-statusline { display: flex; align-items: center; gap: 9px; font-size: 15px; color: var(--ah-on-ink); margin-bottom: 7px; }
.ah-statusline__dot { width: 7px; height: 7px; border-radius: 50%; background: var(--ah-lime); flex-shrink: 0; }
.ah-steps-foot { text-align: center; font-size: 16.5px; color: var(--ah-cap); margin: 28px 0 0; }
@media (max-width: 820px) { .ah-steps { grid-template-columns: 1fr; } }

/* ---- INDUSTRIES-01 ---- */
.ah-ind__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 40px; margin-bottom: 40px; flex-wrap: wrap; max-width: 1080px; margin-inline: auto; }
.ah-ind__head .ah-h2 { max-width: 520px; margin: 0; }
.ah-ind__intro { font-size: 19px; color: var(--ah-muted); max-width: 360px; margin: 0; line-height: 1.55; }
.ah-ind__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; max-width: 1080px; margin: 0 auto; }
.ah-indcard { border: 1px solid var(--ah-bd-card); border-radius: 16px; overflow: hidden; background: var(--ah-bg); }
.ah-indcard__photo { height: 150px; background: var(--ah-photo); background-size: cover; background-position: center; display: flex; align-items: center; justify-content: center; }
.ah-indcard__body { padding: 18px 20px; }
.ah-indcard__title { font-family: var(--ah-display); font-weight: 700; font-size: 19px; margin-bottom: 6px; }
.ah-indcard__desc { font-size: 15.5px; line-height: 1.5; color: var(--ah-muted-2); margin: 0; }
@media (max-width: 980px) { .ah-ind__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .ah-ind__grid { grid-template-columns: 1fr; } }

/* ---- TESTIMONIALS-01 ---- */
.ah-quotes { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 20px; max-width: 1080px; margin: 0 auto; }
.ah-quote { background: #fff; border: 1px solid var(--ah-bd-card); border-radius: 16px; padding: 26px; margin: 0; }
.ah-quote__text { font-family: var(--ah-display); font-weight: 500; font-size: 20px; line-height: 1.45; margin: 0 0 18px; }
.ah-quote__cap { display: flex; align-items: center; gap: 12px; }
.ah-quote__avatar { width: 40px; height: 40px; border-radius: 50%; background: repeating-linear-gradient(45deg, rgba(90,85,60,.12) 0 6px, rgba(90,85,60,.04) 6px 12px), #e8e4d5; background-size: cover; background-position: center; flex-shrink: 0; }
.ah-quote__who { font-size: 15.5px; color: var(--ah-muted-2); line-height: 1.4; }
.ah-quote__who strong { color: var(--ah-ink); }
@media (max-width: 820px) { .ah-quotes { grid-template-columns: 1fr; } }

/* ---- PRICING-01: tier cards ---- */
.ah-tiers { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; align-items: stretch; max-width: 1120px; margin: 0 auto; }
.ah-tier { border: 1px solid var(--ah-bd-card); border-radius: 18px; padding: 26px 24px; display: flex; flex-direction: column; position: relative; background: #fff; }
.ah-tier--pop { border: 2px solid var(--ah-ink); background: var(--ah-bg); box-shadow: var(--ah-shadow-pop); }
.ah-tier__pop { position: absolute; top: -13px; left: 24px; background: var(--ah-lime); border: 1.5px solid var(--ah-ink); font-size: 14px; font-weight: 700; padding: 4px 12px; border-radius: 99px; }
.ah-tier__name { font-family: var(--ah-display); font-weight: 700; font-size: 21px; }
.ah-tier__price { margin: 12px 0 4px; }
.ah-tier__price b { font-family: var(--ah-display); font-weight: 800; font-size: 40px; }
.ah-tier__price span { color: var(--ah-cap); font-size: 16px; }
.ah-tier__tag { font-size: 15.5px; color: var(--ah-muted-2); margin: 0 0 18px; }
.ah-tier__feats { list-style: none; padding: 0; margin: 0 0 22px; display: flex; flex-direction: column; gap: 9px; font-size: 16px; color: var(--ah-list); }
.ah-tier__feats li.ah-tier__inherit { color: var(--ah-cap); }
.ah-tier__cta { margin-top: auto; text-align: center; border: 1.5px solid var(--ah-ink); color: var(--ah-ink); text-decoration: none; font-size: 16.5px; font-weight: 600; padding: 11px 0; border-radius: 99px; }
.ah-tier--pop .ah-tier__cta { background: var(--ah-ink); color: var(--ah-lime); font-weight: 700; border-color: var(--ah-ink); }
@media (max-width: 980px) { .ah-tiers { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .ah-tiers { grid-template-columns: 1fr; } }

/* ---- PRICING-02: comparison matrix ---- */
.ah-matrix { position: relative; border: 1px solid var(--ah-bd-card); border-radius: 18px; overflow: hidden; background: #fff; max-width: 1120px; margin: 0 auto; }
.ah-matrix__band { position: absolute; top: 0; bottom: 0; background: var(--ah-lime-tint); z-index: 0; pointer-events: none; }
.ah-matrix__row { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr 1fr; }
.ah-matrix__row > * { position: relative; z-index: 1; }
.ah-matrix__head { border-bottom: 1.5px solid var(--ah-bd-input); align-items: end; }
.ah-matrix__corner { padding: 26px 22px 18px; font-family: var(--ah-mono); font-weight: 600; font-size: 14px; color: var(--ah-cap); letter-spacing: .06em; }
.ah-matrix__plan { padding: 26px 12px 18px; text-align: center; }
.ah-matrix__plan-name { font-family: var(--ah-display); font-weight: 700; font-size: 20px; }
.ah-matrix__plan-price { margin: 6px 0 12px; }
.ah-matrix__plan-price b { font-family: var(--ah-display); font-weight: 800; font-size: 28px; }
.ah-matrix__plan-price span { color: var(--ah-cap); font-size: 15px; }
.ah-matrix__poptab { display: inline-block; background: var(--ah-lime); border: 1px solid var(--ah-ink); font-size: 12.5px; font-weight: 700; padding: 3px 10px; border-radius: 99px; white-space: nowrap; margin-bottom: 8px; }
.ah-matrix__try { display: inline-block; border: 1.5px solid var(--ah-ink); color: var(--ah-ink); text-decoration: none; font-size: 15px; font-weight: 600; padding: 8px 18px; border-radius: 99px; }
.ah-matrix__plan--pop .ah-matrix__try { background: var(--ah-ink); color: var(--ah-lime); font-weight: 700; padding: 9px 18px; }
.ah-matrix__group { font-family: var(--ah-mono); font-weight: 600; font-size: 13px; color: var(--ah-cap); letter-spacing: .08em; padding: 18px 22px 8px; grid-column: 1 / 4; }
.ah-matrix__feat-row { border-bottom: 1px solid var(--ah-bd-row); }
.ah-matrix__feat { padding: 13px 22px; font-size: 16.5px; color: var(--ah-list); display: flex; align-items: center; flex-wrap: wrap; column-gap: 6px; }
.ah-matrix__feat small { color: var(--ah-cap); font-size: 14.5px; }
.ah-matrix__cell { padding: 11px 0; display: flex; align-items: center; justify-content: center; }
.ah-matrix__cell--dash { color: var(--ah-dash); font-size: 17px; }
.ah-matrix__cell--text { font-size: 15px; font-weight: 700; }
.ah-check { display: inline-flex; width: 24px; height: 24px; border-radius: 50%; background: var(--ah-lime); align-items: center; justify-content: center; }
.ah-matrix__foot { text-align: center; font-size: 16px; color: var(--ah-cap); margin: 24px 0 0; }
@media (max-width: 860px) { .ah-matrix { overflow-x: auto; } .ah-matrix__row { min-width: 720px; } }

/* ---- DEMO chips (shared) ---- */
.ah-demolink { display: flex; align-items: center; gap: 12px; background: #fff; border: 1px solid var(--ah-bd-card); border-radius: 12px; padding: 13px 16px; text-decoration: none; color: var(--ah-ink); }
.ah-demolink:hover { border-color: var(--ah-lime-border); }
.ah-demolink__dot { width: 9px; height: 9px; border-radius: 50%; background: var(--ah-green-dot); flex-shrink: 0; }
.ah-demolink__url { font-family: var(--ah-mono); font-size: 15.5px; color: var(--ah-list); overflow: hidden; text-overflow: ellipsis; }
.ah-demolink__go { margin-left: auto; font-size: 15px; font-weight: 600; white-space: nowrap; }

/* ---- DEMO-01: split ---- */
.ah-demo1__grid { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1.2fr; gap: 72px; }
.ah-demo1 .ah-h2 { font-size: clamp(28px, 3.5vw, 34px); }
.ah-demo1__desc { font-size: 19px; line-height: 1.6; color: var(--ah-muted); margin: 0 0 24px; }
.ah-demo1__links { display: flex; flex-direction: column; gap: 10px; }
@media (max-width: 820px) { .ah-demo1__grid { grid-template-columns: 1fr; gap: 40px; } }

/* ---- DEMO-02: centered list ---- */
.ah-demo2 { max-width: 660px; margin: 0 auto; text-align: center; }
.ah-demo2__sub { font-size: 19px; line-height: 1.6; color: var(--ah-muted); margin: 0 0 32px; }
.ah-demo2__links { display: flex; flex-direction: column; gap: 12px; text-align: left; }
.ah-demo2 .ah-demolink { background: var(--ah-bg); border-radius: 14px; padding: 16px 20px; }
.ah-demo2 .ah-demolink__url { font-size: 17px; }
.ah-demo2 .ah-demolink__go { font-size: 16px; }
.ah-demo2__foot { font-size: 16px; color: var(--ah-cap); margin: 24px 0 0; }

/* ---- DEMO-03: photo cards ---- */
.ah-demo3__grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 20px; max-width: 1080px; margin: 0 auto; }
.ah-democard { text-decoration: none; color: var(--ah-ink); background: #fff; border: 1px solid var(--ah-bd-card); border-radius: 16px; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 12px 30px -22px rgba(60,55,30,.35); }
.ah-democard__photo { height: 180px; background: var(--ah-photo); background-size: cover; background-position: center; display: flex; align-items: center; justify-content: center; }
.ah-democard__body { padding: 20px 22px; }
.ah-democard__name { font-family: var(--ah-display); font-weight: 700; font-size: 21px; margin-bottom: 10px; }
.ah-democard__pill { display: flex; align-items: center; gap: 10px; background: var(--ah-bg); border: 1px solid var(--ah-bd-card); border-radius: 99px; padding: 9px 14px; }
.ah-democard__pill .ah-demolink__dot { width: 9px; height: 9px; }
.ah-democard__pill span.url { font-family: var(--ah-mono); font-size: 14.5px; color: var(--ah-list); }
@media (max-width: 820px) { .ah-demo3__grid { grid-template-columns: 1fr; } }

/* ---- FAQ-01: sticky ---- */
.ah-faq__grid { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: 400px 1fr; gap: 72px; align-items: start; }
.ah-faq__left { position: sticky; top: 24px; }
.ah-faq__left .ah-h2 { margin-bottom: 16px; }
.ah-faq__desc { font-size: 18.5px; line-height: 1.6; color: var(--ah-muted); margin: 0 0 28px; }
.ah-support { background: #fff; border: 1px solid var(--ah-bd-card); border-radius: 16px; padding: 22px 24px; }
.ah-support__title { font-family: var(--ah-display); font-weight: 700; font-size: 18.5px; margin-bottom: 6px; }
.ah-support__desc { font-size: 16px; line-height: 1.55; color: var(--ah-muted-2); margin: 0 0 16px; }
.ah-support__cta { display: inline-block; background: var(--ah-ink); color: var(--ah-lime); text-decoration: none; font-size: 16px; font-weight: 600; padding: 11px 20px; border-radius: 99px; }
.ah-faq__list { border-top: 1px solid var(--ah-bd-input); }
.ah-faqitem { border-bottom: 1px solid var(--ah-bd-input); padding: 0; }
.ah-faqitem__q { width: 100%; text-align: left; background: none; border: 0; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 16px; font-family: var(--ah-body); font-size: 18.5px; font-weight: 600; color: var(--ah-ink); padding: 22px 0; }
.ah-faqitem__sign { font-size: 21px; font-weight: 400; line-height: 1; }
.ah-faqitem__a { font-size: 17px; line-height: 1.65; color: var(--ah-muted); margin: 0; max-width: 560px; overflow: hidden; max-height: 0; transition: max-height .25s ease, padding .25s ease; padding: 0; }
.ah-faqitem.is-open .ah-faqitem__a { max-height: 400px; padding: 0 0 22px; }
@media (max-width: 820px) { .ah-faq__grid { grid-template-columns: 1fr; gap: 32px; } .ah-faq__left { position: static; } }

/* ==========================================================================
   Contact + FAQ index pages (brand-aligned)
   ========================================================================== */
.c-section { padding: 96px 0; }
.c-muted { color: var(--ah-muted); }
.c-contact__inner { display: grid; grid-template-columns: 1fr 1.3fr; gap: 3rem; align-items: start; }
.c-contact__intro h1 { font-family: var(--ah-display); font-weight: 800; font-size: clamp(34px,5vw,48px); letter-spacing: -0.02em; margin-bottom: .75rem; }
.c-form { display: flex; flex-direction: column; gap: 1.1rem; }
.c-form__row { display: flex; flex-direction: column; gap: .35rem; }
.c-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem; }
.c-form label { font-weight: 600; font-size: .92rem; }
.c-form__opt { font-weight: 400; color: var(--ah-muted); font-size: .82rem; }
.c-form input, .c-form textarea { width: 100%; padding: .75rem .9rem; border: 1px solid var(--ah-bd-input); border-radius: 10px; font: inherit; background: #fff; color: inherit; }
.c-form input:focus, .c-form textarea:focus { outline: none; border: 1.5px solid var(--ah-lime-border); }
.c-form__error { background: oklch(0.95 0.06 25); color: oklch(0.45 0.18 25); padding: .75rem 1rem; border-radius: 10px; }
.c-form__hp { position: absolute; left: -9999px; }
.c-form .errorlist { color: oklch(0.50 0.20 25); list-style: none; margin: 0; padding: 0; font-size: .85rem; }
.c-form .ah-btn { align-self: flex-start; }
@media (max-width: 820px) { .c-contact__inner { grid-template-columns: 1fr; gap: 2rem; } .c-form__grid { grid-template-columns: 1fr; } }

.c-faq-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1.25rem; margin-top: 2rem; }
.c-faq-card { display: block; padding: 1.5rem; border: 1px solid var(--ah-bd-card); border-radius: 16px; color: inherit; text-decoration: none; background: #fff; }
.c-faq-card:hover { border-color: var(--ah-lime-border); }
.c-faq-card__title { font-family: var(--ah-display); font-size: 1.15rem; margin-bottom: .4rem; }
.c-faq-card__count { display: inline-block; margin-top: .75rem; font-size: .82rem; font-weight: 600; }
.c-faq { margin-top: 1.5rem; border-top: 1px solid var(--ah-bd-input); }
.c-faq__item { border-bottom: 1px solid var(--ah-bd-input); padding: 0 0; }
.c-faq__q { cursor: pointer; font-weight: 600; padding: 1.2rem 0; list-style: none; }
.c-faq__q::-webkit-details-marker { display: none; }
.c-faq__a { padding: 0 0 1.2rem; color: var(--ah-muted); }
.c-page-head { text-align: center; max-width: 640px; margin: 0 auto 2.5rem; }
.c-page-head h1 { font-family: var(--ah-display); font-weight: 800; letter-spacing: -0.02em; }

/* ==========================================================================
   FEATURE-03 - detail split + CTA-01 - lime band
   ========================================================================== */
.ah-fd { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 64px; align-items: center; }
.ah-fd--flip .ah-fd__story { order: 2; }
.ah-fd--flip .ah-fd__bullets { order: 1; }
.ah-fd__kicker { font-family: var(--ah-mono); font-size: 13.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--ah-muted); margin-bottom: 14px; }
.ah-fd .ah-h2 { font-size: clamp(32px, 4vw, 42px); }
.ah-fd__body { font-size: 19.5px; line-height: 1.65; color: var(--ah-muted); margin-bottom: 22px; }
.ah-fd__body p { margin: 0 0 14px; }
.ah-fd__body p:last-child { margin-bottom: 0; }
.ah-fd__story .ah-btn { margin-top: 4px; }
.ah-fd__bullets { list-style: none; margin: 0; padding: 28px 30px; border: 1px solid var(--ah-bd-card); border-radius: 18px; background: var(--ah-lime-tint); display: flex; flex-direction: column; gap: 14px; }
.ah-fd__bullets li { position: relative; padding-left: 32px; font-size: 18px; line-height: 1.5; font-weight: 500; }
.ah-fd__bullets li::before { content: ""; position: absolute; left: 0; top: 3px; width: 18px; height: 18px; border-radius: 50%; background: var(--ah-ink); -webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>') center/contain no-repeat; mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>') center/contain no-repeat; }
@media (max-width: 820px) {
    .ah-fd { grid-template-columns: 1fr; gap: 32px; }
    .ah-fd--flip .ah-fd__story { order: 1; }
    .ah-fd--flip .ah-fd__bullets { order: 2; }
}

.ah-ctaband { background: var(--ah-lime); padding: 72px 0; text-align: center; }
.ah-ctaband__inner { max-width: 760px; margin: 0 auto; padding: 0 var(--ah-pad); }
.ah-ctaband__title { font-family: var(--ah-display); font-weight: 800; font-size: clamp(30px, 4.5vw, 44px); line-height: 1.05; letter-spacing: -0.02em; margin: 0 0 14px; }
.ah-ctaband__sub { font-size: 20px; line-height: 1.55; color: rgba(32,31,26,.7); margin: 0 auto 26px; max-width: 540px; }
.ah-ctaband__trust { font-family: var(--ah-mono); font-size: 13.5px; letter-spacing: .08em; color: rgba(32,31,26,.55); margin: 18px 0 0; text-transform: uppercase; }
@media (max-width: 700px) { .ah-ctaband { padding: 56px 0; } }

/* Language suggestion bar (Accept-Language driven, dismissible) */
.c-langhint { display: flex; align-items: center; justify-content: center; gap: 14px; flex-wrap: wrap; background: var(--ah-ink); color: #fff; padding: 10px 48px 10px 16px; font-size: 15px; position: relative; }
.c-langhint__cta { color: var(--ah-lime); font-weight: 700; text-decoration: underline; }
.c-langhint__close { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); background: none; border: none; color: rgba(255,255,255,.7); font-size: 16px; cursor: pointer; padding: 6px; }
.c-langhint__close:hover { color: #fff; }
