:root {
    --ink:#17394b;
    --navy:#123447;
    --muted:#66737a;
    --coral:#d97559;
    --orange:#ef9368;
    --sage:#eaf2ee;
    --teal:#428f8e;
    --cream:#faf9f5;
    --paper:#fffdf9;
    --line:#e7e8e2;
    --white:#fff;
    --serif:Georgia,'Times New Roman',serif;
    --sans:'DM Sans',Arial,sans-serif;
    --heading:'Manrope',Arial,sans-serif;
    --container:1190px
}

* {
    box-sizing:border-box
}

html {
    scroll-behavior:smooth;
    scroll-padding-top:92px
}

body {
    margin:0;
    color:var(--ink);
    font-family:var(--sans);
    background:var(--cream);
    -webkit-font-smoothing:antialiased
}

body.modal-open {
    overflow:hidden
}

a {
    color:inherit;
    text-decoration:none
}

button,input,textarea {
    font:inherit
}

button {
    cursor:pointer
}

button:disabled {
    cursor:not-allowed
}

img {
    display:block;
    max-width:100%
}

.container {
    width:min(var(--container),calc(100% - 64px));
    margin-inline:auto
}

.section {
    padding:114px 0
}

.skip-link {
    position:absolute;
    top:-50px;
    left:14px;
    background:white;
    padding:12px;
    z-index:200
}

.skip-link:focus {
    top:12px
}

.visually-hidden {
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0
}

.announcement {
    background:#dceddf;
    color:#38675b;
    display:flex;
    gap:13px;
    justify-content:center;
    align-items:center;
    text-align:center;
    padding:11px 20px;
    font-size:11px;
    font-weight:600;
    letter-spacing:.015em
}

.announcement a {
    text-decoration:underline;
    text-underline-offset:3px
}

.announcement-dot {
    width:6px;
    height:6px;
    display:inline-block;
    background:#6e9d89;
    border-radius:50%;
    flex-shrink:0
}

.site-header {
    position:sticky;
    top:0;
    z-index:60;
    background:rgba(250,249,245,.97);
    backdrop-filter:blur(16px);
    border-bottom:1px solid rgba(19,52,71,.09)
}

.nav-shell {
    height:88px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:25px
}

.brand {
    display:inline-flex;
    align-items:center;
    gap:9px;
    flex-shrink:0
}

.brand>img {
    height:54px;
    width:54px;
    object-fit:contain;
    mix-blend-mode:multiply
}

.brand-copy {
    display:flex;
    flex-direction:column;
    line-height:1.15
}

.brand-copy strong {
    font-family:var(--heading);
    font-size:17px;
    font-weight:800;
    letter-spacing:.025em
}

.brand-copy strong span {
    color:var(--teal)
}

.brand-copy small {
    font-size:8px;
    letter-spacing:.35em;
    margin-top:4px;
    text-align:center
}

.desktop-nav {
    display:flex;
    align-items:center;
    gap:26px;
    font-size:12px;
    font-weight:600
}

.desktop-nav a,.text-action {
    transition:color .2s
}

.desktop-nav a:hover,.text-action:hover {
    color:var(--coral)
}

.nav-actions {
    display:flex;
    align-items:center;
    gap:23px
}

.text-action {
    border:0;
    background:none;
    color:var(--ink);
    font-size:12px;
    font-weight:700;
    white-space:nowrap
}

.text-action span {
    margin-left:7px
}

.btn {
    border:1px solid transparent;
    border-radius:5px;
    display:inline-flex;
    justify-content:center;
    align-items:center;
    gap:29px;
    min-height:54px;
    padding:0 23px;
    font-size:12px;
    font-weight:700;
    transition:transform .2s,background .2s,color .2s;
    white-space:nowrap
}

.btn:hover {
    transform:translateY(-2px)
}

.btn-primary {
    background:var(--navy);
    color:white
}

.btn-primary:hover {
    background:#22556a
}

.btn-outline {
    color:var(--navy);
    border-color:#ced5d3;
    background:transparent
}

.btn-outline:hover {
    background:white
}

.btn-light {
    background:#fffaf2;
    color:var(--ink)
}

.btn-sm {
    min-height:41px;
    padding:0 16px;
    gap:17px;
    font-size:11px
}

.mobile-menu-toggle,.mobile-menu {
    display:none
}

.hero {
    padding:79px 0 0;
    overflow:hidden;
    background:linear-gradient(115deg,#faf9f5 45%,#f4f5ee 100%)
}

.hero-grid {
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:60px;
    align-items:center;
    min-height:565px
}

.hero-copy {
    padding-bottom:40px;
    position:relative;
    z-index:2
}

.eyebrow {
    font-size:10px;
    letter-spacing:.16em;
    font-weight:800;
    display:inline-flex;
    align-items:center;
    gap:12px;
    text-transform:uppercase
}

.eyebrow-line {
    height:1px;
    width:30px;
    background:var(--coral)
}

.eyebrow.coral {
    color:#c47860
}

.hero h1 {
    font:700 clamp(46px,5.1vw,78px)/1.15 var(--heading);
    letter-spacing:-.055em;
    margin:29px 0 23px
}

.hero h1 em,h2 em,blockquote em {
    font-family:var(--serif);
    font-weight:400;
    letter-spacing:-.04em;
    color:var(--teal)
}

.hero-description {
    max-width:510px;
    line-height:1.85;
    font-size:15px;
    color:#667277
}

.hero-buttons {
    display:flex;
    flex-wrap:wrap;
    gap:11px;
    margin-top:31px
}

.hero-reassurance {
    display:flex;
    gap:12px;
    align-items:center;
    color:#64787b;
    font-size:11px;
    margin-top:24px
}

.hero-reassurance i {
    height:4px;
    width:4px;
    border-radius:50%;
    background:#bac4bd
}

.dot-icon {
    font-size:11px;
    color:#3d9485
}

.hero-art {
    position:relative;
    height:570px;
    display:flex;
    justify-content:center;
    align-items:center
}

.arch-art {
    position:relative;
    width:360px;
    height:485px;
    background:linear-gradient(145deg,#e5f0e7,#c3ddce);
    border-radius:190px 190px 8px 8px;
    padding:19px;
    box-shadow:24px 32px 0 rgba(229,206,176,.15)
}

.arch-inner {
    height:100%;
    position:relative;
    overflow:hidden;
    background:linear-gradient(180deg,#ebf5ef,#e7eee0 65%,#b7d5c7);
    border-radius:180px 180px 3px 3px
}

.sun-disc {
    position:absolute;
    border-radius:50%;
    background:linear-gradient(145deg,#f8d3a8,#efb17d);
    height:205px;
    width:205px;
    top:105px;
    left:60px;
    box-shadow:0 0 48px rgba(252,214,159,.2)
}

.landscape {
    position:absolute;
    width:650px;
    height:265px;
    border-radius:50%;
    transform:rotate(-13deg);
    left:-155px
}

.landscape.back {
    top:285px;
    background:#78a99a
}

.landscape.front {
    top:350px;
    left:-115px;
    background:#347c79;
    transform:rotate(14deg)
}

.flower {
    position:absolute;
    font-size:80px;
    color:#f4f1df
}

.flower-a {
    bottom:62px;
    left:45px
}

.flower-b {
    bottom:105px;
    right:32px;
    font-size:48px;
    color:#f8dfbc
}

.leaf {
    width:13px;
    height:105px;
    background:#e9e3ca;
    border-radius:100% 10%;
    position:absolute;
    bottom:42px;
    right:90px;
    transform:rotate(-30deg)
}

.leaf-two {
    height:73px;
    right:110px;
    bottom:71px;
    transform:rotate(35deg)
}

.orb-one,.orb-two {
    position:absolute;
    border-radius:50%;
    border:1px solid #ddbc95
}

.orb-one {
    height:88px;
    width:88px;
    top:45px;
    left:-4px
}

.orb-two {
    height:19px;
    width:19px;
    bottom:110px;
    right:15px;
    background:#efc19f
}

.floating-note {
    position:absolute;
    z-index:2;
    display:flex;
    gap:11px;
    align-items:center;
    background:#fffdf8;
    box-shadow:0 16px 47px rgba(18,52,71,.12);
    padding:15px 19px;
    border-radius:8px;
    left:-48px;
    bottom:96px;
    min-width:220px
}

.floating-note-icon {
    border-radius:50%;
    height:34px;
    width:34px;
    background:#f9e7d6;
    color:#df9168;
    display:grid;
    place-items:center;
    font-size:20px
}

.floating-note strong {
    display:block;
    font-size:12px
}

.floating-note small {
    font-size:10px;
    color:var(--muted)
}

.art-caption {
    position:absolute;
    bottom:7px;
    right:23px;
    font-size:9px;
    letter-spacing:.14em;
    color:#5d8684
}

.hero-bottom {
    height:72px;
    border-top:1px solid #daddd3;
    display:flex;
    align-items:center;
    justify-content:space-between;
    font-size:10px;
    letter-spacing:.12em;
    font-weight:700;
    color:#67817c
}

.hero-bottom a {
    color:var(--navy)
}

.hero-bottom a span {
    font-size:17px;
    margin-left:10px
}

.trust-band {
    border-bottom:1px solid var(--line);
    background:#fffdf8
}

.trust-items {
    display:grid;
    grid-template-columns:repeat(4,1fr)
}

.trust-items>span {
    padding:24px 10px;
    font-size:11px;
    font-weight:600;
    border-right:1px solid var(--line);
    text-align:center
}

.trust-items>span:last-child {
    border:0
}

.trust-items b {
    font-size:10px;
    color:#d0836d;
    margin-right:10px
}

.intro-layout {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:130px
}

.section h2 {
    font:700 clamp(35px,3.6vw,54px)/1.23 var(--heading);
    letter-spacing:-.049em;
    margin:19px 0 0
}

.intro-layout p,.section-top>p,.how-left>p,.ai-copy>p,.pro-description>p,.faq-layout>div>p {
    color:var(--muted);
    font-size:14px;
    line-height:1.9
}

.intro-layout .large-lead {
    color:var(--ink);
    font-size:19px;
    line-height:1.65;
    font-weight:600;
    margin:4px 0 17px
}

.inline-link {
    display:inline-flex;
    align-items:center;
    gap:35px;
    border-bottom:1px solid var(--navy);
    font-size:12px;
    font-weight:800;
    padding-bottom:8px;
    margin-top:16px
}

.inline-link span {
    font-size:19px
}

.feelings-section {
    background:#f2f4ee
}

.section-top {
    display:flex;
    justify-content:space-between;
    align-items:end;
    gap:60px;
    margin-bottom:38px
}

.section-top>p {
    max-width:270px;
    margin-bottom:4px
}

.feeling-grid {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:14px
}

.feeling-card {
    border:1px solid #e1e6dc;
    background:#fffdf9;
    min-height:242px;
    padding:25px 25px 23px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    transition:transform .2s
}

.feeling-card:hover {
    transform:translateY(-5px)
}

.feeling-symbol {
    font:44px var(--serif);
    color:#d8a78d
}

.feeling-card p {
    font-family:var(--heading);
    font-weight:700;
    font-size:17px;
    line-height:1.5;
    letter-spacing:-.03em
}

.feeling-card>span:last-child {
    font-size:9px;
    letter-spacing:.06em;
    font-weight:700;
    color:#a38d85
}

.how-section {
    background:#244f57;
    color:#f8f9f2;
    padding:0
}

.how-layout {
    display:grid;
    grid-template-columns:.88fr 1.12fr;
    gap:0
}

.how-left {
    position:relative;
    padding:104px 70px 110px 0;
    overflow:hidden
}

.how-left h2 em {
    color:#f0c3a4
}

.how-left>p {
    color:#c0d4d0;
    max-width:330px;
    margin:22px 0 28px
}

.how-mark {
    position:absolute;
    bottom:-90px;
    left:-43px;
    font:bold 330px var(--heading);
    color:rgba(255,255,255,.035);
    line-height:1
}

.how-mark span {
    font:100px var(--serif);
    position:absolute;
    left:160px;
    bottom:110px
}

.steps {
    padding:64px 0 64px 68px;
    border-left:1px solid rgba(255,255,255,.2)
}

.step {
    display:grid;
    grid-template-columns:43px 1fr 30px;
    gap:24px;
    padding:31px 0;
    border-bottom:1px solid rgba(255,255,255,.18)
}

.step:last-child {
    border-bottom:0
}

.step-number {
    font:16px var(--serif);
    color:#f0bd9b
}

.step h3 {
    font-size:17px;
    font-family:var(--heading);
    margin:0 0 9px;
    letter-spacing:-.025em
}

.step p {
    font-size:12px;
    color:#c8d9d5;
    line-height:1.8;
    margin:0;
    max-width:380px
}

.step-arrow {
    color:#edc4a6
}

.paths-section {
    background:#faf9f5
}

.path-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:17px
}

.path-card {
    position:relative;
    overflow:hidden;
    display:flex;
    flex-direction:column;
    min-height:427px;
    padding:30px;
    background:#f6e9e0
}

.path-individual {
    background:#e6eee9
}

.path-group {
    background:#e6ecf0
}

.path-icon {
    height:43px;
    width:43px;
    background:rgba(255,255,255,.64);
    display:grid;
    place-items:center;
    border-radius:50%;
    font-size:25px;
    color:#c78062;
    margin-bottom:28px
}

.path-individual .path-icon {
    color:#3d9187
}

.path-group .path-icon {
    color:#547a9a
}

.path-index {
    font-size:10px;
    font-weight:800;
    letter-spacing:.1em;
    color:#a67b69
}

.path-individual .path-index {
    color:#5c8b82
}

.path-group .path-index {
    color:#68869d
}

.path-card h3 {
    font:700 27px/1.28 var(--heading);
    letter-spacing:-.055em;
    margin:16px 0 13px
}

.path-card p {
    font-size:13px;
    line-height:1.8;
    color:#64767c;
    max-width:280px
}

.card-link {
    font-size:12px;
    font-weight:800;
    margin-top:auto;
    display:flex;
    align-items:center;
    gap:15px;
    align-self:flex-start;
    border:0;
    background:transparent;
    color:var(--ink);
    padding:10px 0;
    z-index:2
}

.card-link span {
    font-size:19px
}

.path-decoration {
    position:absolute;
    right:15px;
    bottom:-60px;
    opacity:.11;
    color:#d87757;
    font-size:230px;
    pointer-events:none
}

.rings {
    width:170px;
    height:170px;
    border:32px solid #4e968b;
    border-radius:50%;
    bottom:-45px;
    right:-35px
}

.group-decor {
    color:#4b80a3
}

.ai-section {
    background:#fffdf9
}

.ai-layout {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:105px;
    align-items:center
}

.ai-showcase {
    background:#e7efe9;
    border-radius:170px 170px 8px 8px;
    min-height:570px;
    padding:74px 50px 32px;
    position:relative
}

.chat-illustration {
    position:relative;
    margin:0 auto;
    max-width:350px;
    background:#fff;
    border-radius:13px;
    box-shadow:0 25px 60px rgba(19,60,65,.13);
    padding:17px;
    transform:rotate(-3deg)
}

.chat-illustration-head {
    display:flex;
    justify-content:space-between;
    border-bottom:1px solid #edf0ed;
    padding:5px 2px 14px;
    font-size:12px;
    font-weight:800
}

.chat-illustration-head i {
    display:inline-block;
    background:#6fab96;
    height:7px;
    width:7px;
    border-radius:50%;
    margin-right:7px
}

.sparkle {
    font-size:20px;
    color:#d88a6a
}

.chat-bubble {
    max-width:87%;
    font-size:11px;
    line-height:1.7;
    padding:12px;
    margin:16px 0;
    border-radius:11px
}

.chat-bubble.assistant {
    background:#edf3ef;
    border-bottom-left-radius:3px
}

.chat-bubble.visitor {
    margin-left:auto;
    background:#f7e7dc;
    border-bottom-right-radius:3px
}

.chat-illustration-input {
    display:flex;
    justify-content:space-between;
    align-items:center;
    color:#a6b0b1;
    font-size:10px;
    border:1px solid #e9eee9;
    border-radius:7px;
    padding:11px
}

.chat-illustration-input span {
    background:#2e7777;
    color:#fff;
    padding:5px 8px;
    border-radius:4px
}

.ai-showcase-caption {
    text-align:center;
    margin-top:48px;
    font-size:9px;
    font-weight:800;
    letter-spacing:.13em;
    color:#688e83
}

.ai-copy>p {
    margin:24px 0
}

.check-list {
    list-style:none;
    padding:0;
    margin:0 0 23px
}

.check-list li {
    font-size:13px;
    padding:9px 0;
    display:flex;
    gap:12px;
    align-items:center
}

.check-list li:before {
    content:'✓';
    color:#3b968c;
    font-weight:800
}

.ai-copy p.disclaimer {
    font-size:11px;
    color:#7d8385;
    background:#f7f8f4;
    border-left:2px solid #d4dcd5;
    padding:12px 15px;
    line-height:1.7
}

.pros-section {
    background:#f2f4ee
}

.pros-content {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:105px;
    align-items:center
}

.pro-illustration {
    height:395px;
    background:#e2eae3;
    position:relative;
    overflow:hidden;
    display:grid;
    place-items:center
}

.pro-doodle-circle {
    height:255px;
    width:255px;
    border-radius:50%;
    background:#f5d6bc;
    position:absolute;
    top:68px
}

.pro-doodle-figure {
    position:relative;
    z-index:1;
    width:190px;
    height:245px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:flex-end
}

.pro-doodle-figure .face {
    height:112px;
    width:105px;
    border-radius:50% 50% 48% 48%;
    background:#d99b7a;
    z-index:2;
    position:absolute;
    top:0
}

.pro-doodle-figure .face:before {
    content:'';
    position:absolute;
    inset:-14px 0 56px -10px;
    border-radius:60% 60% 30% 30%;
    background:#344d4d
}

.pro-doodle-figure .body {
    background:#438e83;
    width:195px;
    height:160px;
    border-radius:95px 95px 0 0
}

.pro-illustration-label {
    position:absolute;
    bottom:23px;
    font-size:10px;
    letter-spacing:.12em;
    font-weight:800;
    color:#557d75
}

.pill {
    font-size:10px;
    letter-spacing:.07em;
    border:1px solid #bfd6cc;
    padding:9px 13px;
    border-radius:30px;
    text-transform:uppercase;
    color:#487e74;
    font-weight:800
}

.pro-description h3 {
    font:700 30px/1.35 var(--heading);
    letter-spacing:-.045em;
    margin:24px 0
}

.pro-items {
    margin:25px 0;
    border-top:1px solid #d5dfd6
}

.pro-items>div {
    display:flex;
    gap:20px;
    padding:16px 0;
    border-bottom:1px solid #d5dfd6
}

.pro-items>div>span {
    color:#bc856d;
    font-size:22px
}

.pro-items strong {
    display:block;
    font-size:13px
}

.pro-items small {
    display:block;
    font-size:12px;
    color:var(--muted);
    margin-top:5px
}

.quote-section {
    padding:97px 0;
    background:#fcf5eb;
    text-align:center
}

.quote-symbol {
    font:70px var(--serif);
    color:#e3b39c;
    line-height:1
}

.quote-section blockquote {
    font:600 clamp(24px,3.1vw,41px)/1.48 var(--heading);
    letter-spacing:-.04em;
    margin:10px auto 27px
}

.quote-label {
    font-size:9px;
    letter-spacing:.17em;
    font-weight:800;
    color:#b5856c
}

.resource-section {
    background:#fffdfa
}

.resource-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:20px
}

.resource-card {
    border:1px solid #e9e9e3;
    background:#fff
}

.resource-visual {
    height:200px;
    display:grid;
    place-items:center;
    overflow:hidden
}

.resource-visual span {
    font-family:var(--serif);
    font-size:145px;
    line-height:1;
    opacity:.65
}

.visual-one {
    background:#e3eee6;
    color:#5f9a89
}

.visual-two {
    background:#f8e5d5;
    color:#e2aa85
}

.visual-three {
    background:#e7ebed;
    color:#7fa7ae
}

.resource-body {
    padding:24px
}

.resource-body>span:first-child {
    font-size:10px;
    color:#be886d;
    font-weight:800;
    letter-spacing:.08em
}

.resource-body h3 {
    font:700 18px/1.45 var(--heading);
    letter-spacing:-.03em
}

.resource-body p {
    font-size:12px;
    color:var(--muted);
    line-height:1.8
}

.resource-unavailable {
    display:inline-block;
    font-size:10px;
    color:#899695;
    margin-top:7px
}

.faq-section {
    background:#f5f6f0
}

.faq-layout {
    display:grid;
    grid-template-columns:.85fr 1.15fr;
    gap:110px
}

.faq-list details {
    border-bottom:1px solid #d8dfd9
}

.faq-list details:first-child {
    border-top:1px solid #d8dfd9
}

.faq-list summary {
    list-style:none;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:25px;
    padding:25px 0;
    font-size:14px;
    font-weight:700
}

.faq-list summary::-webkit-details-marker {
    display:none
}

.faq-list summary span {
    color:#bc7d65;
    font-size:24px;
    font-weight:400;
    transition:transform .2s
}

.faq-list details[open] summary span {
    transform:rotate(45deg)
}

.faq-list details p {
    color:var(--muted);
    font-size:13px;
    line-height:1.85;
    margin:0 20px 22px 0
}

.cta-section {
    background:#d5e7df;
    padding:90px 0;
    overflow:hidden
}

.cta-layout {
    display:flex;
    justify-content:space-between;
    align-items:center
}

.cta-layout p {
    color:#56736e;
    max-width:460px;
    line-height:1.8;
    font-size:14px;
    margin:22px 0 25px
}

.cta-flower {
    font-size:300px;
    line-height:1;
    transform:rotate(17deg);
    color:#80b4a5;
    opacity:.3
}

.footer {
    background:#173d4b;
    color:#e8eee9;
    padding:65px 0 0
}

.footer-main {
    display:grid;
    grid-template-columns:2fr 1fr 1fr 1.3fr;
    gap:38px;
    padding-bottom:66px
}

.footer .brand>img {
    mix-blend-mode:normal;
    border-radius:50%
}

.footer .brand-copy strong span {
    color:#83c3b2
}

.footer-brand p {
    font-size:12px;
    color:#bfd0d0;
    line-height:1.8;
    max-width:300px;
    margin-top:25px
}

.footer-links {
    display:flex;
    flex-direction:column;
    gap:16px
}

.footer-links h4 {
    font-size:12px;
    margin:4px 0 8px
}

.footer-links a {
    font-size:12px;
    color:#bed0d0
}

.footer-links a:hover {
    text-decoration:underline
}

.footer-end>span:first-child {
    font-size:10px;
    font-weight:700;
    letter-spacing:.1em;
    line-height:1.8;
    color:#a8c7c2
}

.footer-symbol {
    font:115px var(--serif);
    color:#649f95;
    display:block;
    line-height:1;
    margin-top:10px
}

.footer-bottom {
    border-top:1px solid #365866;
    min-height:74px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    color:#b5c9c7;
    font-size:10px
}

.footer-bottom a {
    text-decoration:underline;
    text-underline-offset:3px
}

.modal-backdrop {
    position:fixed;
    inset:0;
    z-index:100;
    background:rgba(11,37,46,.58);
    backdrop-filter:blur(4px)
}

.chat-modal,.login-modal {
    position:fixed;
    z-index:101;
    background:#fffefa;
    box-shadow:0 25px 90px #0a273b40
}

.chat-modal {
    right:28px;
    bottom:24px;
    width:min(460px,calc(100vw - 32px));
    height:min(690px,calc(100dvh - 44px));
    border-radius:14px;
    display:flex;
    flex-direction:column;
    overflow:hidden
}

.chat-modal[hidden],.login-modal[hidden],.modal-backdrop[hidden] {
    display:none!important
}

.modal-head {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:25px;
    padding:23px 25px 17px
}

.modal-status {
    font-size:9px;
    color:#5f9685;
    font-weight:800;
    letter-spacing:.1em
}

.modal-status i {
    height:6px;
    width:6px;
    background:#70b397;
    display:inline-block;
    border-radius:50%;
    margin-right:5px
}

.modal-head h2,.login-modal h2 {
    font:700 25px/1.3 var(--heading);
    letter-spacing:-.04em;
    margin:9px 0 0
}

.icon-button {
    background:transparent;
    border:none;
    color:var(--ink);
    font-size:20px;
    padding:4px
}

.chat-notice {
    font-size:10px;
    line-height:1.5;
    background:#fff3e9;
    color:#946c58;
    padding:11px 24px
}

.chat-messages {
    flex:1;
    min-height:0;
    overflow:auto;
    padding:22px 23px
}

.chat-message {
    padding:13px 15px;
    font-size:12px;
    line-height:1.7;
    max-width:88%;
    margin-bottom:16px;
    border-radius:12px;
    white-space:pre-wrap;
    overflow-wrap:anywhere
}

.bot-message {
    background:#e9f2ed;
    border-bottom-left-radius:2px
}

.user-message {
    background:#f5e4da;
    margin-left:auto;
    border-bottom-right-radius:2px
}

.chat-composer {
    padding:13px 22px 18px;
    border-top:1px solid #e6ece7
}

.chat-count {
    font-size:10px;
    color:#6e8985;
    margin-bottom:10px
}

.chat-composer form {
    display:flex;
    align-items:end;
    gap:9px;
    border:1px solid #d7e1db;
    background:white;
    padding:6px 6px 6px 13px;
    border-radius:8px
}

.chat-composer textarea {
    resize:none;
    border:0;
    outline:0;
    min-height:40px;
    max-height:130px;
    width:100%;
    padding:10px 0;
    font-size:12px;
    background:transparent;
    color:var(--ink)
}

.send-button {
    border:0;
    border-radius:6px;
    background:#225a64;
    color:white;
    font-size:22px;
    height:37px;
    width:39px;
    flex-shrink:0
}

.send-button:disabled {
    background:#bcc9c6
}

.chat-composer>p {
    font-size:9px;
    color:#8f9999;
    margin:10px 0 0;
    text-align:center
}

.login-modal {
    top:50%;
    left:50%;
    transform:translate(-50%,-50%);
    border-radius:12px;
    padding:43px;
    width:min(460px,calc(100% - 32px))
}

.login-close {
    position:absolute;
    right:18px;
    top:15px
}

.login-modal>p {
    font-size:13px;
    color:var(--muted);
    line-height:1.8
}

.login-preview {
    display:flex;
    gap:18px;
    background:#edf4ee;
    padding:21px;
    margin:27px 0
}

.login-preview>span {
    font-size:27px;
    color:#4d9081
}

.login-preview strong,.login-preview small {
    display:block
}

.login-preview strong {
    font-size:13px
}

.login-preview small {
    font-size:12px;
    color:#647c78;
    line-height:1.6;
    margin-top:7px
}

button:focus-visible,a:focus-visible,textarea:focus-visible,summary:focus-visible {
    outline:3px solid #db997a;
    outline-offset:4px
}

@media(max-width:1100px) {
    .desktop-nav {
        gap:15px
    }
    .nav-actions {
        gap:12px
    }
    .brand-copy strong {
        font-size:14px
    }
    .container {
        width:min(var(--container),calc(100% - 46px))
    }
    .hero-grid {
        gap:25px
    }
    .hero-art {
        transform:scale(.9)
    }
    .ai-layout,.pros-content {
        gap:50px
    }
    .intro-layout,.faq-layout {
        gap:65px
    }
}

@media(max-width:900px) {
    .desktop-nav,.nav-actions {
        display:none
    }
    .mobile-menu-toggle {
        display:flex;
        flex-direction:column;
        gap:5px;
        background:none;
        border:none;
        padding:10px
    }
    .mobile-menu-toggle span {
        height:2px;
        width:23px;
        background:var(--ink)
    }
    .mobile-menu {
        display:flex;
        flex-direction:column;
        position:absolute;
        left:0;
        right:0;
        top:100%;
        background:var(--cream);
        box-shadow:0 15px 25px #17394b18;
        padding:20px 30px;
        gap:17px
    }
    .mobile-menu[hidden] {
        display:none
    }
    .mobile-menu a,.mobile-menu button {
        text-align:left;
        font-weight:700;
        font-size:13px;
        background:none;
        border:0;
        padding:8px 0;
        color:var(--ink)
    }
    .hero-grid {
        grid-template-columns:1fr 1fr;
        gap:0
    }
    .hero h1 {
        font-size:clamp(38px,5vw,56px)
    }
    .hero-art {
        transform:scale(.72);
        transform-origin:center
    }
    .feeling-grid {
        grid-template-columns:repeat(2,1fr)
    }
    .path-grid {
        gap:10px
    }
    .path-card {
        padding:23px;
        min-height:460px
    }
    .path-card h3 {
        font-size:23px
    }
    .ai-showcase {
        padding-left:25px;
        padding-right:25px
    }
    .footer-main {
        grid-template-columns:2fr 1fr 1fr
    }
    .footer-end {
        display:none
    }
}

@media(max-width:700px) {
    .container {
        width:calc(100% - 38px)
    }
    .section {
        padding:76px 0
    }
    .announcement {
        font-size:10px;
        line-height:1.5;
        flex-wrap:wrap;
        gap:5px
    }
    .nav-shell {
        height:70px
    }
    .brand>img {
        height:46px;
        width:46px
    }
    .hero {
        padding:49px 0 0
    }
    .hero-grid {
        grid-template-columns:1fr;
        min-height:0
    }
    .hero-copy {
        padding-bottom:20px
    }
    .hero h1 {
        font-size:clamp(39px,9vw,58px);
        margin:23px 0
    }
    .hero-description {
        font-size:14px
    }
    .hero-buttons {
        flex-direction:column;
        align-items:stretch
    }
    .hero-buttons .btn {
        white-space:normal;
        text-align:center;
        justify-content:space-between
    }
    .hero-art {
        height:385px;
        transform:scale(.69);
        transform-origin:center center;
        margin:-20px 0
    }
    .hero-bottom {
        height:58px
    }
    .hero-bottom span {
        font-size:9px
    }
    .hero-bottom a {
        font-size:9px
    }
    .trust-items {
        grid-template-columns:repeat(2,1fr)
    }
    .trust-items>span {
        border-bottom:1px solid var(--line);
        font-size:10px
    }
    .trust-items>span:nth-child(2) {
        border-right:0
    }
    .intro-layout,.how-layout,.ai-layout,.pros-content,.faq-layout {
        grid-template-columns:1fr;
        gap:40px
    }
    .intro-layout .large-lead {
        font-size:17px
    }
    .section-top {
        display:block
    }
    .section-top>p {
        margin-top:22px;
        max-width:500px
    }
    .section h2 {
        font-size:clamp(33px,8vw,46px)
    }
    .feeling-grid {
        gap:9px
    }
    .feeling-card {
        min-height:210px;
        padding:18px
    }
    .feeling-card p {
        font-size:14px
    }
    .how-left {
        padding:72px 0 10px
    }
    .steps {
        padding:10px 0 64px;
        border-left:0
    }
    .step {
        gap:10px;
        grid-template-columns:35px 1fr 25px
    }
    .path-grid,.resource-grid {
        grid-template-columns:1fr
    }
    .path-card {
        min-height:320px
    }
    .ai-showcase {
        min-height:450px;
        padding-top:43px
    }
    .ai-showcase-caption {
        margin-top:32px
    }
    .chat-illustration {
        max-width:330px
    }
    .pros-content {
        gap:33px
    }
    .pro-illustration {
        height:310px
    }
    .quote-section {
        padding:67px 0
    }
    .quote-section blockquote {
        font-size:23px
    }
    .resource-visual {
        height:180px
    }
    .faq-layout {
        gap:24px
    }
    .cta-section {
        padding:66px 0
    }
    .cta-flower {
        display:none
    }
    .footer-main {
        grid-template-columns:1fr 1fr;
        gap:35px
    }
    .footer-brand {
        grid-column:1/-1
    }
    .footer-bottom {
        flex-wrap:wrap;
        padding:20px 0;
        line-height:1.5
    }
    .chat-modal {
        right:8px;
        bottom:8px;
        width:calc(100vw - 16px);
        height:calc(100dvh - 16px)
    }
    .login-modal {
        padding:29px
    }
}

@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior:auto
    }
    *,*:before,*:after {
        transition:none!important;
        animation:none!important
    }
}


/* RINASCIMENTE v1.2 — Accesso persistente alla chat dimostrativa. */
.chat-fab {
    position: fixed;
    right: max(24px, env(safe-area-inset-right));
    bottom: max(24px, env(safe-area-inset-bottom));
    z-index: 90;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    max-width: calc(100vw - 32px);
    padding: 10px 19px 10px 10px;
    border: 1px solid rgba(255, 255, 255, 0.33);
    border-radius: 999px;
    background: #184d57;
    color: #fff;
    box-shadow: 0 10px 34px rgba(15, 54, 61, 0.26);
    font: inherit;
    font-weight: 650;
    font-size: 13px;
    line-height: 1.25;
    cursor: pointer;
    transition: transform 180ms ease, box-shadow 180ms ease, opacity 180ms ease;
}

.chat-fab:hover {
    transform: translateY(-3px);
    box-shadow: 0 14px 40px rgba(15, 54, 61, 0.34);
}

.chat-fab:focus-visible {
    outline: 3px solid #e9a46d;
    outline-offset: 4px;
}

.chat-fab-icon {
    display: grid;
    flex: 0 0 42px;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.16);
}

.chat-fab-label {
    white-space: nowrap;
}

body.modal-open .chat-fab {
    opacity: 0;
    pointer-events: none;
}

/* Homepage più leggibile: minore distanza verticale, sezioni intatte. */
.section {
    padding-block: 82px;
}

@media (max-width: 767px) {
    .section {
        padding-block: 58px;
    }

    .chat-fab {
        right: max(16px, env(safe-area-inset-right));
        bottom: max(16px, env(safe-area-inset-bottom));
        gap: 0;
        width: 56px;
        height: 56px;
        padding: 7px;
        justify-content: center;
    }

    .chat-fab-icon {
        flex-basis: 42px;
    }

    .chat-fab-label {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .chat-fab {
        transition: none;
    }
}


.project-funding {
    padding: clamp(2.5rem, 6vw, 4rem) 0;
    border-top: 1px solid var(--line);
    background: #fff;
    text-align: center;
}
.project-funding h2 {
    margin: 0 0 .75rem;
    color: var(--navy);
    font-size: clamp(1.4rem, 3vw, 2rem);
}
.project-funding p {
    max-width: 74ch;
    margin: 0 auto .75rem;
}
.project-funding-axis { font-weight: 700; }
.project-funding img {
    display: block;
    width: 100%;
    max-width: 1050px;
    height: auto;
    margin: 1.25rem auto 0;
}