
  section{padding:100px 0;}
  @media (max-width:640px){section{padding:56px 0;}}
  .section-head{max-width:640px; margin-bottom:56px;}
  .section-head.center{margin-left:auto; margin-right:auto; text-align:center;}
  .section-head h2{font-size:clamp(1.9rem, 3vw, 2.5rem);}
  .section-head p{color:var(--ink-soft); font-size:1.02rem;}
  .band-sage{background:var(--sage-deep); color:var(--cream);}
  .band-sage h2, .band-sage h3, .band-sage h4{color:var(--cream);}
  .band-sage .section-head p{color:rgba(244,240,228,0.78);}
  .band-cream-deep{background:var(--cream-deep);}

  /* ---------- HERO ---------- */
  .contact-hero{padding:70px 0 50px;}
  .contact-hero .wrap{display:grid; grid-template-columns:1.05fr .95fr; gap:64px; align-items:center;}
  .contact-hero h1{font-size:clamp(2.2rem,4vw,3.1rem); max-width:14ch;}
  .contact-hero .lede{color:var(--ink-soft); font-size:1.04rem; max-width:48ch; margin-bottom:28px;}
  .contact-hero .hero-ctas{display:flex; gap:16px; flex-wrap:wrap; margin-bottom:30px;}
  .contact-hero .price-tag{font-size:.78rem; opacity:.85; margin-left:4px;}
  .contact-visual{
    aspect-ratio:4/5; border-radius:var(--radius); background:linear-gradient(160deg, var(--sage-pale), var(--cream-deep));
    display:flex; align-items:center; justify-content:center; position:relative;
  }
  .contact-visual .ph-label{font-family:'Fraunces', serif; font-style:italic; color:var(--sage-deep); font-size:.95rem; text-align:center; padding:0 20%;}
  @media (max-width:900px){.contact-hero .wrap{grid-template-columns:1fr; gap:44px;} .contact-visual{order:-1; max-width:380px; margin:0 auto;}}

  /* ---------- HOW CAN I HELP ---------- */
  .help-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
  .help-card{
    background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
    padding:38px 32px; display:flex; flex-direction:column;
    transition:transform .25s ease, box-shadow .25s ease;
  }
  .help-card:hover{transform:translateY(-4px); box-shadow:0 16px 34px rgba(43,42,36,0.08);}
  .help-card .h-icon{font-size:1.7rem; margin-bottom:20px;}
  .help-card h3{font-size:1.2rem; margin-bottom:12px;}
  .help-card p{color:var(--ink-soft); font-size:.92rem; margin-bottom:22px; flex:1;}
  .help-card .h-link{color:var(--clay); font-weight:600; font-size:.9rem;}
  @media (max-width:900px){.help-grid{grid-template-columns:1fr;}}

  /* ---------- BOOK CONSULTATION ---------- */
  .booking-wrap{display:grid; grid-template-columns:1.2fr .8fr; gap:56px; align-items:start;}
  .booking-form{
    background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:38px 36px;
  }
  .field-row{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
  .field{margin-bottom:20px;}
  .field label{display:block; font-size:.78rem; letter-spacing:.04em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:8px; font-weight:600;}
  .field input, .field select, .field textarea{
    width:100%; padding:13px 14px; border:1px solid var(--line); border-radius:var(--radius);
    background:var(--cream); font-family:'Work Sans', sans-serif; font-size:.94rem; color:var(--ink);
  }
  .field textarea{resize:vertical; min-height:120px;}
  .field input:focus, .field select:focus, .field textarea:focus{outline:none; border-color:var(--sage-soft);}
  .field-optional{color:var(--ink-soft); font-weight:400; text-transform:none; letter-spacing:0; font-size:.76rem;}

  .includes-card{
    background:var(--cream-deep); border:1px solid var(--line); border-radius:var(--radius); padding:34px 32px;
  }
  .includes-card h3{font-size:1.15rem; margin-bottom:20px;}
  .includes-list{list-style:none; margin:0 0 26px; padding:0;}
  .includes-list li{display:flex; gap:12px; padding:10px 0; font-size:.92rem; border-bottom:1px solid var(--line);}
  .includes-list li:last-child{border-bottom:none;}
  .includes-list li .check{color:var(--clay); flex:none; font-family:'Fraunces', serif;}
  .investment-row{display:flex; align-items:baseline; gap:10px; margin-bottom:22px;}
  .investment-row .price{font-family:'Fraunces', serif; font-size:2.1rem;}
  .investment-row .price-note{font-size:.8rem; color:var(--ink-soft);}
  @media (max-width:1000px){.booking-wrap{grid-template-columns:1fr;}}
  @media (max-width:600px){.field-row{grid-template-columns:1fr;}}

  /* ---------- FLOWCHART ---------- */
  .ac-flow{display:flex; flex-direction:column; gap:0; max-width:520px; margin:0 auto 50px;}
  .flow-node{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:18px 24px; text-align:center; font-family:'Fraunces', serif; font-size:1.02rem;}
  .flow-node.emphasis{border-color:var(--clay); background:var(--cream-deep); font-weight:500;}
  .flow-arrow{text-align:center; color:var(--sage-soft); font-size:1.2rem; padding:6px 0;}

  /* ---------- SEND MESSAGE ---------- */
  .message-wrap{display:grid; grid-template-columns:1.15fr .85fr; gap:56px; align-items:start;}
  @media (max-width:1000px){.message-wrap{grid-template-columns:1fr;}}
  .msg-note{background:var(--cream-deep); border:1px solid var(--line); border-radius:var(--radius); padding:32px 30px;}
  .msg-note h3{font-size:1.1rem; margin-bottom:12px;}
  .msg-note p{color:var(--ink-soft); font-size:.92rem;}

  /* ---------- FAQ ---------- */
  .faq-list{max-width:800px; margin:0 auto;}
  details{border-bottom:1px solid var(--line); padding:22px 0;}
  details summary{list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; font-family:'Fraunces', serif; font-size:1.08rem; color:var(--ink);}
  details summary::-webkit-details-marker{display:none;}
  details summary .plus{font-family:'Work Sans', sans-serif; font-size:1.4rem; color:var(--clay); transition:transform .3s ease; flex:none; margin-left:20px;}
  details[open] summary .plus{transform:rotate(45deg);}
  details .faq-a{padding-top:14px; color:var(--ink-soft); font-size:.94rem; max-width:64ch;}

  /* ---------- NEWSLETTER SECTION ---------- */
  .newsletter-section{text-align:center;}
  .newsletter-section .wrap{max-width:640px;}
  .newsletter-benefits{list-style:none; display:flex; flex-wrap:wrap; justify-content:center; gap:12px 22px; margin:0 0 32px; padding:0;}
  .newsletter-benefits li{font-size:.88rem; color:rgba(244,240,228,0.85); display:flex; align-items:center; gap:8px;}
  .newsletter-benefits li .check{color:var(--clay-soft);}
  .newsletter-big-form{display:flex; gap:12px; flex-wrap:wrap; justify-content:center; max-width:520px; margin:0 auto;}
  .newsletter-big-form input{
    flex:1; min-width:180px; padding:14px 16px; border:1px solid rgba(244,240,228,0.3); border-radius:var(--radius);
    background:rgba(244,240,228,0.08); color:var(--cream); font-family:'Work Sans', sans-serif; font-size:.94rem;
  }
  .newsletter-big-form input::placeholder{color:rgba(244,240,228,0.55);}
  .newsletter-big-form input:focus{outline:none; border-color:var(--clay-soft);}

  /* ---------- FINAL INVITATION ---------- */
  .final-invite{
    background:linear-gradient(160deg, var(--sage-pale), var(--cream-deep)); text-align:center;
  }
  .final-invite .wrap{max-width:680px;}
  .final-invite p{color:var(--ink-soft);}
  .final-invite .hero-ctas{display:flex; gap:16px; justify-content:center; flex-wrap:wrap; margin-top:26px;}

  

  /* ---------- AUTH MODAL (shared) ---------- */
  .auth-overlay{position:fixed; inset:0; z-index:200; background:rgba(43,42,36,0.55); display:none; align-items:center; justify-content:center; padding:24px; backdrop-filter:blur(3px);}
  .auth-overlay.open{display:flex;}
  .auth-modal{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); width:100%; max-width:420px; max-height:90vh; overflow-y:auto; position:relative; padding:44px 40px 40px; box-shadow:0 24px 60px rgba(43,42,36,0.25); animation:authIn .3s ease;}
  @keyframes authIn{from{opacity:0; transform:translateY(10px) scale(.98);} to{opacity:1; transform:translateY(0) scale(1);}}
  .auth-close{position:absolute; top:16px; right:16px; width:34px; height:34px; border:none; background:transparent; font-size:1.3rem; line-height:1; color:var(--ink-soft); cursor:pointer; border-radius:50%; display:flex; align-items:center; justify-content:center; transition:background .2s ease, color .2s ease;}
  .auth-close:hover{background:var(--cream-deep); color:var(--ink);}
  .auth-tabs{display:flex; gap:4px; background:var(--cream-deep); border-radius:var(--radius); padding:4px; margin-bottom:30px;}
  .auth-tab{flex:1; text-align:center; padding:10px 12px; font-family:'Work Sans', sans-serif; font-size:.88rem; font-weight:500; color:var(--ink-soft); background:transparent; border:none; border-radius:var(--radius); cursor:pointer; transition:background .25s ease, color .25s ease;}
  .auth-tab.active{background:var(--sage-deep); color:var(--cream);}
  .auth-head{margin-bottom:26px;}
  .auth-head h3{font-size:1.5rem; margin-bottom:6px;}
  .auth-head p{font-size:.88rem; color:var(--ink-soft); margin:0;}
  .auth-panel{display:none;}
  .auth-panel.active{display:block;}
  .auth-field{margin-bottom:18px;}
  .auth-field label{display:block; font-size:.78rem; letter-spacing:.04em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:8px; font-weight:600;}
  .auth-field input{width:100%; padding:13px 14px; border:1px solid var(--line); border-radius:var(--radius); background:var(--cream); font-family:'Work Sans', sans-serif; font-size:.94rem; color:var(--ink); transition:border-color .2s ease;}
  .auth-field input:focus{outline:none; border-color:var(--sage-soft);}
  .auth-row-between{display:flex; align-items:center; justify-content:space-between; margin-bottom:24px; font-size:.84rem;}
  .auth-remember{display:flex; align-items:center; gap:8px; color:var(--ink-soft);}
  .auth-remember input{accent-color:var(--sage-deep);}
  .auth-forgot{color:var(--clay); font-weight:500;}
  .auth-forgot:hover{text-decoration:underline;}
  .auth-submit{width:100%; justify-content:center; margin-bottom:20px;}
  .auth-switch{text-align:center; font-size:.88rem; color:var(--ink-soft);}
  .auth-switch button{background:none; border:none; padding:0; color:var(--clay); font-weight:600; cursor:pointer; font-family:'Work Sans', sans-serif; font-size:inherit;}
  .auth-switch button:hover{text-decoration:underline;}
  .auth-terms{font-size:.78rem; color:var(--ink-soft); margin-bottom:20px; line-height:1.5;}
  .auth-terms a{color:var(--clay); font-weight:500;}

  /* form submit success */
  .form-success{
    display:none; text-align:center; padding:40px 20px;
  }
  .form-success.show{display:block;}
  .form-success .fs-icon{
    width:56px; height:56px; border-radius:50%; background:var(--sage-deep); color:var(--cream);
    display:flex; align-items:center; justify-content:center; margin:0 auto 18px; font-size:1.4rem;
  }