/* Aurora website (aurora.<env>.alvvaos.com): general landing + partner pages.
   Hand-written, build-free; markup in resources/views/aurora/site.blade.php. */

:root {
    --as-paper: #F7F5F0;
    --as-white: #FFFFFF;
    --as-ink: #1B1B1A;
    --as-ink-2: #3A3935;
    --as-ink-3: #5C5A55;
    --as-line: #E4E0D6;
    --as-field: #CFCAC0;
    --as-sand: #ECE8DF;
    --as-teal: #00B8C1;
    --as-teal-ink: #00747A;
    --as-teal-wash: #E3F7F8;
    --as-trust: #00B67A;
    --as-error: #B42318;
    --as-serif: 'Instrument Serif', Georgia, serif;
    --as-sans: Inter, system-ui, -apple-system, 'Segoe UI', sans-serif;
    --as-max: 1200px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body.as {
    margin: 0;
    background: var(--as-paper);
    color: var(--as-ink);
    font-family: var(--as-sans);
    font-size: 16px;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}
.as a { color: var(--as-teal-ink); }
.as a:hover { color: #00575C; }
.as input, .as select, .as button { font: inherit; }
.as :focus-visible { outline: 3px solid var(--as-teal); outline-offset: 2px; }
.as [hidden] { display: none !important; }

.as-skip { position: absolute; left: -9999px; top: 8px; padding: 8px 14px; background: var(--as-ink); color: #fff !important; border-radius: 8px; z-index: 10; }
.as-skip:focus { left: 8px; }
.as-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Header */
.as-top { max-width: var(--as-max); margin: 0 auto; padding: 24px 24px 0; display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.as-brand { display: flex; align-items: center; gap: 14px; text-decoration: none; }
.as-brand img { height: 32px; width: auto; display: block; }
.as-brand__x { font-size: 18px; color: #8A867D; }
.as-brand__partner { font-size: 22px; font-weight: 700; letter-spacing: -0.02em; color: #1E40AF; line-height: 1; }

/* Buttons */
.as-btn {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 56px; padding: 0 28px; border: 0; border-radius: 999px;
    background: var(--as-teal); color: #fff !important; text-decoration: none;
    font-size: 17px; font-weight: 600; cursor: pointer;
    transition: background-color .15s ease, transform .15s ease;
}
.as-btn:hover { background: #00A3AB; }
.as-btn:active { transform: translateY(1px); }
.as-btn--ghost { min-height: 44px; padding: 0 18px; background: transparent; border: 1px solid var(--as-ink); color: var(--as-ink) !important; font-size: 15px; font-weight: 500; }
.as-btn--ghost:hover { background: var(--as-white); }
.as-btn--block { width: 100%; min-height: 52px; margin-top: 4px; font-size: 16px; }

/* Hero */
.as-hero { max-width: var(--as-max); margin: 0 auto; padding: 88px 24px 120px; display: flex; flex-wrap: wrap; gap: 56px; align-items: center; }
.as-hero__copy { flex: 1 1 440px; min-width: 0; display: flex; flex-direction: column; gap: 28px; }
.as-eyebrow { margin: 0; font-size: 14px; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; color: var(--as-ink-3); }
.as-h1 { margin: 0; font-family: var(--as-serif); font-weight: 400; font-size: 3.75rem; line-height: 1.04; letter-spacing: -0.01em; }
.as-h1 em, .as-h2 em { color: var(--as-teal); }
.as-lede { margin: 0; font-size: 20px; line-height: 1.55; color: var(--as-ink-2); max-width: 34rem; }
.as-saving { margin: 0; align-self: flex-start; display: inline-flex; align-items: center; gap: 10px; padding: 10px 16px; border-radius: 999px; background: var(--as-teal-wash); border: 1px solid var(--as-teal); color: #062B2E; font-weight: 500; }
.as-saving svg { color: #00838A; flex: none; }
.as-cta { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }
.as-cta span { font-size: 14px; color: var(--as-ink-3); }

.as-hero__media { flex: 1 1 400px; min-width: 0; position: relative; }
.as-hero__photo { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 28px; background: #E4DED1; }
.as-chat { position: absolute; left: 16px; right: 16px; bottom: 16px; max-width: 340px; display: flex; flex-direction: column; gap: 8px; padding: 16px; background: rgba(255, 255, 255, .94); border-radius: 18px; box-shadow: 0 8px 24px rgba(27, 27, 26, .12); }
.as-chat p { margin: 0; padding: 8px 12px; font-size: 14px; line-height: 1.4; }
.as-chat__me { align-self: flex-end; max-width: 80%; border-radius: 16px 16px 4px 16px; background: var(--as-teal); color: #fff; }
.as-chat__her { align-self: flex-start; max-width: 85%; border-radius: 16px 16px 16px 4px; background: var(--as-sand); }

/* Sign-up form: open by default; with JS it waits behind "Text Aurora". */
.as-form { display: flex; flex-direction: column; gap: 12px; padding: 24px; background: var(--as-white); border: 1px solid var(--as-line); border-radius: 20px; max-width: 30rem; scroll-margin: 24px; }
.as-js .as-form:not(.is-open) { display: none; }
.as-form__title { margin: 0; font-family: var(--as-serif); font-size: 26px; line-height: 1.1; }
.as-form__alert { margin: 0; padding: 10px 12px; border-radius: 10px; background: #FEF3F2; color: var(--as-error); font-size: 14px; }
.as-field { display: flex; flex-direction: column; gap: 4px; flex: 1 1 auto; min-width: 0; }
.as-field label { font-size: 13px; font-weight: 500; color: var(--as-ink-2); }
.as-field input, .as-field select { min-height: 44px; padding: 0 12px; border: 1px solid var(--as-field); border-radius: 10px; font-size: 16px; background: var(--as-white); color: var(--as-ink); width: 100%; }
.as-field select { padding: 0 8px; }
.as-field.is-invalid input, .as-field.is-invalid select { border-color: var(--as-error); }
.as-field__row { display: flex; gap: 8px; }
.as-field--cc { flex: 0 0 104px; }
.as-field__error { margin: 0; font-size: 13px; color: var(--as-error); }
.as-consent { margin: 0; font-size: 12px; line-height: 1.5; color: var(--as-ink-3); }

/* Trustpilot */
.as-rating { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; padding-top: 8px; text-decoration: none; color: var(--as-ink) !important; }
.as-rating__score { font-family: var(--as-serif); font-size: 44px; line-height: 1; }
.as-rating__meta { display: flex; flex-direction: column; gap: 6px; font-size: 14px; color: var(--as-ink-2); }
.as-stars { display: flex; gap: 4px; }
.as-stars__star { width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; background: var(--as-trust); fill: #fff; }
/* 4.6 of 5: the last star is ~60% filled. */
.as-stars__star--part { background: linear-gradient(90deg, var(--as-trust) 60%, #D9D5CC 60%); }

/* Lower band */
.as-band { background: var(--as-white); border-top: 1px solid var(--as-line); }
.as-band__inner { max-width: var(--as-max); margin: 0 auto; padding: 120px 24px; display: flex; flex-direction: column; gap: 48px; }
.as-band__head { display: flex; flex-direction: column; gap: 12px; }
.as-band__head p { margin: 0; color: var(--as-ink-2); max-width: 40rem; }
.as-h2 { margin: 0; font-family: var(--as-serif); font-weight: 400; font-size: 3rem; line-height: 1.05; }
.as-num { width: 44px; height: 44px; border-radius: 50%; background: var(--as-teal); color: #fff; display: flex; align-items: center; justify-content: center; font-family: var(--as-serif); font-size: 26px; line-height: 1; flex: none; }

.as-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 32px; }
.as-steps li { display: flex; flex-direction: column; gap: 10px; padding-top: 20px; border-top: 1px solid var(--as-ink); }
.as-steps h3 { margin: 0; font-size: 18px; font-weight: 600; }
.as-steps p, .as-card p { margin: 0; color: var(--as-ink-2); }

.as-cards { list-style: none; margin: 0; padding: 0; display: grid; gap: 24px; }
.as-cards--3 { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.as-cards--4 { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.as-card { display: flex; flex-direction: column; gap: 12px; padding: 28px; background: var(--as-paper); border: 1px solid transparent; border-radius: 20px; }
.as-card--featured { background: var(--as-teal-wash); border-color: var(--as-teal); }
.as-card__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; }
.as-card__top .as-pill:only-child { margin-left: auto; }
.as-card h3 { margin: 0; font-size: 20px; font-weight: 600; }
.as-pill { padding: 4px 10px; border-radius: 999px; background: var(--as-white); border: 1px solid var(--as-line); font-size: 13px; font-weight: 600; color: var(--as-ink-2); white-space: nowrap; }
.as-pill--free { background: var(--as-teal); border-color: var(--as-teal); color: #fff; }

/* Testimonials */
.as-proof { display: flex; flex-wrap: wrap; gap: 48px; align-items: flex-start; margin-top: 56px; }
.as-proof__intro { flex: 1 1 280px; min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.as-proof__intro p { margin: 0; color: var(--as-ink-2); }
.as-proof__link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-weight: 500; }
.as-proof__link svg { fill: var(--as-trust); }
.as-quotes { flex: 2 1 480px; min-width: 0; display: flex; flex-direction: column; gap: 20px; }
.as-quote { margin: 0; min-height: 260px; padding: 36px; background: var(--as-paper); border-radius: 24px; display: flex; flex-direction: column; justify-content: space-between; gap: 28px; }
.as-quote blockquote { margin: 0; font-family: var(--as-serif); font-size: 28px; line-height: 1.25; }
.as-quote figcaption { display: flex; align-items: center; gap: 14px; }
.as-quote figcaption > span:last-child { display: flex; flex-direction: column; }
.as-quote figcaption [data-t="meta"] { font-size: 14px; color: var(--as-ink-3); }
.as-quote__avatar { width: 44px; height: 44px; border-radius: 50%; background: var(--as-teal); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 600; font-size: 15px; flex: none; }
.as-quotes__nav { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.as-dots { display: flex; gap: 4px; }
.as-dots button { width: 32px; height: 44px; border: 0; background: transparent; padding: 0; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.as-dots span { display: block; width: 8px; height: 6px; border-radius: 3px; background: #B9B4A9; transition: width .2s ease, background-color .2s ease; }
.as-dots [aria-current="true"] span { width: 24px; background: var(--as-teal); }
.as-arrows { display: flex; gap: 8px; }
.as-arrow { width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--as-ink); background: var(--as-white); color: var(--as-ink); cursor: pointer; display: flex; align-items: center; justify-content: center; }
.as-arrow--dark { background: var(--as-ink); color: #fff; }

/* Attorney review */
.as-review { display: flex; flex-direction: column; gap: 24px; }
.as-review .as-kicker { margin: 0; }
.as-review__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 48px 64px; align-items: start; }
.as-review .as-h2 { font-size: 2.6rem; line-height: 1.08; }
.as-review__lede { margin: 20px 0 0; font-size: 18px; color: var(--as-ink-2); max-width: 32rem; }
.as-review__list { margin: 0; display: flex; flex-direction: column; }
.as-review__list > div { padding: 20px 0; border-top: 1px solid var(--as-line); }
.as-review__list > div:last-child { border-bottom: 1px solid var(--as-line); }
.as-review__list dt { font-weight: 600; font-size: 17px; }
.as-review__list dd { margin: 6px 0 0; color: var(--as-ink-2); }

/* Footer */
.as-foot { max-width: var(--as-max); margin: 0 auto; padding: 32px 24px 48px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; font-size: 13px; color: var(--as-ink-3); }
.as-foot p { margin: 0; max-width: 44rem; }
.as-foot__links { display: flex; gap: 16px; }

@media (max-width: 600px) {
    .as-top { flex-wrap: nowrap; padding: 16px 20px 0; gap: 12px; }
    .as-brand { gap: 8px; min-width: 0; }
    .as-brand img { height: 26px; }
    .as-brand__partner { font-size: 17px; }
    .as-top .as-btn--ghost { padding: 0 14px; font-size: 14px; white-space: nowrap; flex: none; }
    .as-hero { padding: 40px 20px 64px; gap: 40px; }
    .as-h1 { font-size: 2.6rem; }
    .as-h2 { font-size: 2.2rem; }
    .as-lede { font-size: 18px; }
    .as-band__inner { padding: 64px 20px; }
    .as-quote { padding: 24px; min-height: 0; }
    .as-quote blockquote { font-size: 22px; }
    .as-proof { margin-top: 24px; }
    .as-review .as-h2 { font-size: 2rem; }
}

/* Editorial layer: deep ink-teal for action (white text passes AA, the
   bright #00B8C1 did not), a restrained palette with no decorative accent, hairline
   rules and numbered sections instead of pills and tinted cards. */

.as {
    --as-paper: #F3EEE4;
    --as-white: #FBF8F2;
    --as-ink: #1C1915;
    --as-ink-2: #3B362E;
    --as-ink-3: #6B6458;
    --as-line: #D9D1C2;
    --as-field: #C9BFAE;
    --as-sand: #E9E2D4;
    --as-teal: #0A5C61;
    --as-teal-ink: #0A5C61;
    --as-brand: #00B8C1;
}

/* Type: bigger, tighter display; small-caps labels. */
.as .as-h1 { font-size: 4.25rem; line-height: .98; letter-spacing: -0.02em; }
.as .as-h1 em {
    color: var(--as-teal);
}
.as .as-h2 { font-size: 3.4rem; letter-spacing: -0.015em; }
.as .as-eyebrow { font-size: 12px; letter-spacing: .14em; color: var(--as-ink-3); display: flex; align-items: center; gap: 12px; }
.as .as-eyebrow::before { content: ''; width: 28px; height: 1px; background: var(--as-ink); flex: none; }

/* Actions: ink-teal, square-ish, not candy. */
.as .as-btn { background: var(--as-teal); border-radius: 4px; min-height: 52px; letter-spacing: .01em; }
.as .as-btn:hover { background: #084A4E; }
.as .as-btn--ghost { background: transparent; border-radius: 4px; }
.as .as-btn--ghost:hover { background: var(--as-ink); color: var(--as-paper) !important; }

/* The saving: a ruled line, not a pill. */
.as .as-saving {
    background: none; border: 0; border-radius: 0; padding: 12px 0;
    border-top: 1px solid var(--as-ink); border-bottom: 1px solid var(--as-ink);
    font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: var(--as-ink);
    align-self: stretch; max-width: 34rem;
}
.as .as-saving svg { color: var(--as-teal); }
.as .as-saving strong { color: var(--as-teal); font-weight: 600; }

/* Photo: framed print with a caption. */
.as .as-hero__photo { border-radius: 2px; box-shadow: 0 0 0 1px var(--as-line); }
.as .as-chat { bottom: 48px; border-radius: 6px; background: rgba(251, 248, 242, .96); }
.as .as-chat__me { background: var(--as-teal); }

/* Form */
.as .as-form { border-radius: 4px; border-color: var(--as-ink); box-shadow: 6px 6px 0 var(--as-sand); }
.as .as-field input, .as .as-field select { border-radius: 2px; }

/* Rating: ink stars, not a green strip. */
.as .as-stars__star { background: none; fill: var(--as-ink); width: 18px; }
.as .as-stars__star--part { background: none; fill: var(--as-ink); opacity: .45; }
.as .as-rating__meta { letter-spacing: .02em; }

/* Lower band: same paper family, hairline-ruled, numbered. */
.as .as-band { background: var(--as-white); border-top: 1px solid var(--as-ink); }
.as .as-kicker {
    display: block; margin: 0 0 -16px; font-family: var(--as-sans); font-size: 12px; font-weight: 500;
    color: var(--as-ink-3); letter-spacing: .14em; text-transform: uppercase;
}
.as .as-proof__intro .as-kicker { margin: 0; }
.as .as-num { background: none; color: var(--as-teal); width: auto; height: auto; font-size: 44px; justify-content: flex-start; }
.as .as-steps li { border-top-color: var(--as-line); }

.as .as-card { background: transparent; border: 0; border-top: 1px solid var(--as-ink); border-radius: 0; padding: 20px 0 0; }
.as .as-card--featured { background: transparent; border-top: 3px solid var(--as-teal); }
.as .as-pill { background: none; border: 0; padding: 0; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--as-ink-3); }
.as .as-pill--free { color: var(--as-teal); }

/* Proof: big serif numbers, pull quote. */
.as .as-proof { border-top: 1px solid var(--as-line); padding-top: 56px; }
.as .as-stats { display: flex; flex-wrap: wrap; gap: 24px; }
.as .as-stats > .as-stats__sep { display: none; }
.as .as-stats > span { display: flex; flex-direction: column; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--as-ink-3); }
.as .as-stats b { font-family: var(--as-serif); font-size: 56px; line-height: 1; letter-spacing: -0.02em; text-transform: none; color: var(--as-ink); }
.as .as-proof__link svg { fill: var(--as-ink); }

.as .as-quote { position: relative; background: none; border-radius: 0; padding: 8px 0 0 56px; min-height: 0; }
.as .as-quote::before {
    content: '“'; position: absolute; left: 0; top: -18px;
    font-family: var(--as-serif); font-size: 120px; line-height: 1; color: var(--as-teal); opacity: .3;
}
.as .as-quote blockquote { font-size: 34px; line-height: 1.18; }
.as .as-quote__mark:first-child { display: none; }
.as .as-quote__avatar { display: none; }
.as .as-quote figcaption strong { font-size: 13px; letter-spacing: .12em; text-transform: uppercase; }
.as .as-dots [aria-current="true"] span { background: var(--as-brand); }
.as .as-arrow { border-radius: 2px; }
.as .as-arrow--dark { background: var(--as-ink); }

.as .as-foot { border-top: 1px solid var(--as-line); }

@media (max-width: 600px) {
    .as .as-h1 { font-size: 2.8rem; }
    .as .as-h2 { font-size: 2.4rem; }
    .as .as-quote { padding-left: 36px; }
    .as .as-quote::before { font-size: 84px; top: -10px; }
    .as .as-quote blockquote { font-size: 24px; }
    .as .as-stats b { font-size: 44px; }
}

/* Dark band (section 01), after textaurora.si: ink ground, light type. */
.as .as-band--dark { background: var(--as-ink); border-top: 0; color: #F3EEE4; }
.as .as-band--dark .as-kicker { color: #9C9486; }
.as .as-band--dark .as-h2 { color: #F3EEE4; }
.as .as-band--dark p { color: #BDB5A7; }
.as .as-band--dark h3 { color: #F3EEE4; }
.as .as-band--dark .as-num { color: #7FB5B8; }
.as .as-band--dark .as-steps li, .as .as-band--dark .as-card { border-top-color: rgba(243, 238, 228, .22); }
.as .as-band--dark .as-card--featured { border-top-color: #7FB5B8; }
.as .as-band--dark .as-pill { color: #9C9486; }
.as .as-band--dark .as-pill--free { color: #7FB5B8; }
.as .as-band--dark + .as-band { border-top: 0; }

/* FAQ */
.as-faq { background: var(--as-paper); border-top: 1px solid var(--as-line); }
.as-faq__inner { max-width: var(--as-max); margin: 0 auto; padding: 120px 24px; display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 48px 64px; align-items: start; }
.as-faq .as-kicker { margin: 0 0 16px; }
.as-faq__list { border-top: 1px solid var(--as-line); }
.as-faq__item { border-bottom: 1px solid var(--as-line); }
.as-faq__item summary {
    list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 16px;
    min-height: 64px; padding: 16px 0; font-size: 17px; font-weight: 500;
}
.as-faq__item summary::-webkit-details-marker { display: none; }
.as-faq__item summary::after { content: '+'; flex: none; font-size: 22px; font-weight: 300; color: var(--as-ink-3); transition: transform .2s ease; }
.as-faq__item[open] summary::after { transform: rotate(45deg); }
.as-faq__item p { margin: 0 0 20px; max-width: 40rem; color: var(--as-ink-2); }

/* Closing call to action */
.as-close { padding: 0 24px 96px; background: var(--as-paper); }
.as-close__inner { max-width: var(--as-max); margin: 0 auto; padding: 88px 64px; background: var(--as-teal); color: #F3EEE4; display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }
.as-close__kicker { margin: 0; font-size: 12px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: #A9CFD1; }
.as-close__title { margin: 0; font-family: var(--as-serif); font-weight: 400; font-size: 3.4rem; line-height: 1.05; letter-spacing: -0.015em; max-width: 44rem; }
.as-close__lede { margin: 0; font-size: 18px; color: #D6E8E9; max-width: 36rem; }
.as .as-btn--light { margin-top: 12px; background: #F3EEE4; color: var(--as-teal) !important; }
.as .as-btn--light:hover { background: #fff; }

@media (max-width: 600px) {
    .as-faq__inner { padding: 72px 20px; }
    .as-close { padding: 0 0 0; }
    .as-close__inner { padding: 64px 20px; }
    .as-close__title { font-size: 2.4rem; }
}
