
    :root{
      --ink:#233e38;--ink-soft:#4c615a;--muted:#65756e;--sage:#d6e1d9;
      --light:#f8f7f2;--cream:#f1f1e9;--white:#fffefa;--border:#dee5dd;
      --warm:#b9755a;--pine:#203d36;--radius:20px;
    }
    *,*::before,*::after{box-sizing:border-box}
    html{scroll-behavior:smooth;scroll-padding-top:90px}
    body{margin:0;background:var(--light);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}
    a{color:inherit} a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #b9755a;outline-offset:4px}
    .skip{position:absolute;top:-100px;left:15px;z-index:100;padding:10px;background:white}.skip:focus{top:10px}
    .wrap{width:min(1180px,calc(100% - 80px));margin:0 auto}
    .eyebrow{display:flex;align-items:center;gap:12px;color:#658076;text-transform:uppercase;letter-spacing:.17em;font-size:.69rem;font-weight:700}
    .eyebrow::before{content:"";width:25px;height:1px;background:#a47a64}
    h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.045em}
    h1,h2,.serif{font-family:Georgia,'Times New Roman',serif;font-weight:400}
    h1{font-size:clamp(3.7rem,6.7vw,6.85rem);line-height:1.055;margin:25px 0 27px;max-width:750px}
    h2{font-size:clamp(2.55rem,4vw,4.45rem);line-height:1.13;margin:16px 0 22px}
    h3{font-size:1.35rem;line-height:1.25;font-weight:600;letter-spacing:-.025em}
    p{color:var(--ink-soft)}
    .lead{font-size:1.17rem;line-height:1.75;max-width:565px}
    .btn{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:52px;padding:14px 24px;border-radius:100px;text-decoration:none;font-weight:700;font-size:.86rem;letter-spacing:.01em;border:1px solid transparent;transition:background .2s,transform .2s,color .2s}
    .btn:hover{transform:translateY(-2px)}.btn.primary{background:var(--pine);color:#fff}.btn.primary:hover{background:#33554b}
    .btn.outline{border-color:#9bb2a5;color:var(--pine);background:transparent}.btn.outline:hover{background:#eaf0e9}
    .btn.light{background:var(--white);color:var(--pine)}.btn.light:hover{background:#e8eee9}
    .btn svg{width:17px;height:17px;flex:none}
    .header{background:var(--light);position:relative;z-index:20;border-bottom:1px solid rgba(47,81,68,.08)}
    .header-inner{display:flex;justify-content:space-between;align-items:center;min-height:100px;gap:20px}
    .brand{text-decoration:none;display:flex;align-items:center;gap:13px;min-width:0}
    .mark{width:48px;height:48px;border:1px solid #8ca69a;border-radius:50%;display:grid;place-items:center;position:relative;font-family:Georgia,serif;font-size:1.13rem;color:var(--pine)}
    .mark:after{content:"";position:absolute;border:1px solid #b4c4ba;inset:4px;border-radius:50%}
    .brand-copy{display:flex;flex-direction:column;line-height:1.16;gap:4px}
    .brand-copy strong{font-size:.90rem;letter-spacing:.13em;text-transform:uppercase;font-weight:700}
    .brand-copy small{font-size:.67rem;letter-spacing:.26em;text-transform:uppercase;color:#71847c;font-weight:700}
    .nav{display:flex;align-items:center;gap:34px}.nav a{text-decoration:none;font-size:.85rem;color:#425f55;font-weight:600}.nav a:hover{text-decoration:underline;text-underline-offset:5px}
    .nav .nav-cta{padding:11px 21px;border:1px solid #b7c9bd;border-radius:100px;color:var(--pine)}
    .hero{padding:70px 0 104px;overflow:hidden}
    .hero-grid{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(340px,.88fr);align-items:center;gap:50px}
    .hero .lead{margin-bottom:31px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:34px}
    .tiny-note{font-size:.79rem;letter-spacing:.025em;color:#6f7e74;display:flex;align-items:center;gap:13px}
    .tiny-note:before{content:"";width:28px;height:1px;background:#adc3b3}
    .hero-art{position:relative;min-height:605px;background:linear-gradient(145deg,#d9e3d9,#c0d3c8 67%,#e2e8db);border-radius:49% 49% 15px 15px / 31% 31% 15px 15px;overflow:hidden;isolation:isolate}
    .hero-art .glow{position:absolute;width:500px;height:500px;border-radius:50%;left:50%;top:5%;transform:translateX(-50%);background:radial-gradient(circle,#f2f1db 1%,#e6e8d7 42%,transparent 68%);opacity:.9}
    .hero-art .ring{width:340px;height:340px;position:absolute;top:100px;left:50%;transform:translateX(-50%);border-radius:50%;border:1px solid #7d9e8e;opacity:.42}
    .hero-art .ring.two{width:435px;height:435px;top:52px;opacity:.22}
    .hero-art .landscape{position:absolute;bottom:0;inset-inline:0;width:100%;height:72%;z-index:1}
    .art-label{position:absolute;left:10%;right:10%;bottom:32px;background:rgba(250,250,244,.9);padding:24px 28px;border-radius:4px;z-index:2;backdrop-filter:blur(4px);box-shadow:0 12px 28px rgba(46,68,55,.06)}
    .art-label small{display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.18em;font-weight:700;color:#6f8b7e;margin-bottom:8px}
    .art-label strong{display:block;font:normal 1.7rem/1.2 Georgia,serif;color:#2d5145;letter-spacing:-.025em}
    .intro-strip{border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:#f0f2ec}
    .strip-content{min-height:105px;display:flex;justify-content:space-around;align-items:center;gap:30px}
    .strip-item{display:flex;align-items:center;gap:14px;color:#3d5c50;font-size:.82rem;font-weight:700;letter-spacing:.035em}
    .strip-icon{width:40px;height:40px;border:1px solid #bed0c4;border-radius:50%;display:grid;place-items:center;font:normal 1.2rem Georgia,serif}
    section.block{padding:110px 0}
    .section-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:42px}
    .section-head>div{max-width:620px}.section-head p{max-width:410px;margin-bottom:12px}
    .cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
    .service{background:var(--white);padding:34px 30px 31px;border:1px solid #e5e7df;border-radius:6px;min-height:272px;display:flex;flex-direction:column;box-shadow:0 7px 28px rgba(35,64,52,.025)}
    .service h3{font-size:1.38rem;margin-bottom:12px}.service p{font-size:.91rem;line-height:1.75;margin-bottom:0}
    .service-note{margin:24px 0 0;font-size:.78rem;color:#6c7c73}
    .about{background:#e8ede5;position:relative;overflow:hidden}
    .about-grid{display:grid;grid-template-columns:.85fr 1.15fr;align-items:center;gap:clamp(48px,8vw,125px)}
    .about-visual{min-height:480px;display:flex;align-items:center;justify-content:center;position:relative}
    .about-shape{position:absolute;background:linear-gradient(140deg,#bdcec2,#dce5d9);width:88%;height:95%;border-radius:48% 48% 6px 6px/35% 35% 6px 6px;left:0;bottom:0}
    .about-card{position:relative;margin:35px 0 0 44px;padding:40px 36px 43px;background:#fcfcf7;border:1px solid #dce4d6;max-width:360px;box-shadow:0 25px 50px rgba(35,62,50,.08)}
    .quote-mark{font:5rem Georgia,serif;color:#a7bba9;line-height:.8;display:block;margin-bottom:25px}
    .about-card p{font:normal 2rem/1.33 Georgia,serif;letter-spacing:-.035em;color:#2d5145;margin:0}
    .about-card:after{content:"";position:absolute;width:80px;height:80px;border:1px solid #86a18e;border-radius:50%;bottom:-30px;right:-24px;z-index:-1}
    .about-copy p{max-width:550px}.about-copy p:not(.eyebrow){font-size:1.04rem}
    .about-foot{margin-top:27px;padding-top:26px;border-top:1px solid #c4d3c7;font-size:.85rem;color:#5e796a}
    .process{background:#fbfbf7}.process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:40px}
    .step{border-top:1px solid #aebdaf;padding-top:21px}.step .step-count{font:normal 2rem Georgia,serif;color:#819d89;margin-bottom:29px}
    .step h3{margin-bottom:12px}.step p{font-size:.92rem}
    .faq{background:#f1f3ed}
    .faq-grid{display:grid;grid-template-columns:.73fr 1.27fr;gap:90px}
    .faq-list{border-top:1px solid #cbd7cc}
    details{border-bottom:1px solid #cbd7cc;padding:20px 0}
    summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;cursor:pointer;font-weight:700;color:var(--pine)}
    summary::-webkit-details-marker{display:none}
    summary::after{content:"+";font-weight:400;font-size:1.6rem;color:#789786;line-height:1}
    details[open] summary::after{content:"−"}
    details p{margin:15px 25px 5px 0;font-size:.93rem;line-height:1.8}
    .contact{background:#1d3e35;color:#f4f6ee;position:relative;overflow:hidden}
    .contact:before{content:"";position:absolute;right:-210px;top:-260px;width:660px;height:660px;border:1px solid rgba(221,235,215,.15);border-radius:50%}
    .contact:after{content:"";position:absolute;right:-120px;top:-160px;width:460px;height:460px;border:1px solid rgba(221,235,215,.12);border-radius:50%}
    .contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:90px;align-items:center;position:relative;z-index:2}
    .contact h2{color:#fffdf4}.contact .eyebrow{color:#b9cdbb}.contact p{color:#d0ddd1;max-width:610px}
    .contact-action{border-left:1px solid #688475;padding:24px 0 24px 45px}
    .contact-action .label{font-size:.72rem;text-transform:uppercase;letter-spacing:.15em;color:#a7c0b0;font-weight:700}
    .contact-action .contact-address{font:normal 1.6rem Georgia,serif;color:white;margin:17px 0 23px;overflow-wrap:anywhere}
    .contact-action .muted{font-size:.82rem;color:#c5d7c7}
    .contact-action .btn[hidden]{display:none}
    .footer{background:#17372f;padding:34px 0;color:#d5e3d7}
    .footer-grid{display:flex;justify-content:space-between;gap:25px;align-items:center}
    .footer p{margin:0;font-size:.75rem;color:#b5caba}.footer a{color:#e2eee3;font-size:.78rem;text-underline-offset:4px}
    .preview-banner{background:#e8e5d9;color:#654b3d;padding:9px 18px;text-align:center;font-size:.72rem;letter-spacing:.015em}
    .preview-banner strong{color:#634b3c}
    .privacy-note{background:#f4f4ed;padding:30px 0;font-size:.77rem;color:#6c7a70}
    .privacy-note p{margin:0;color:inherit}.privacy-note strong{color:#3d5148}

    /* V2: simpler layout and fewer decorative elements, designed with Carrd in mind */
    .hero{padding:52px 0 82px}
    .hero-grid{grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);gap:48px}
    .hero-art{min-height:510px;border-radius:210px 210px 6px 6px / 150px 150px 6px 6px}
    .hero-art .ring{width:310px;height:310px;top:75px}
    .hero-art .glow{top:-6%}
    .art-label{padding:20px 23px;bottom:24px}
    .art-label strong{font-size:1.53rem}
    section.block{padding:82px 0}
    .section-head{margin-bottom:33px}
    .service{min-height:272px;padding:28px}
    .service-note{max-width:840px}
    .about-grid{grid-template-columns:.83fr 1.17fr;gap:70px}
    .about-visual{min-height:390px}
    .about-shape{width:88%;height:95%;border-radius:180px 180px 6px 6px / 125px 125px 6px 6px}
    .portrait-placeholder{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:24px 0 0 20px;width:75%;height:332px;z-index:1;border:1px solid #afc6b5;background:linear-gradient(145deg,#f8faf3,#dfe9df);box-shadow:0 12px 32px rgba(35,62,50,.08);gap:14px}
    .portrait-symbol{height:120px;width:120px;border:1px solid #94b09d;border-radius:50%;display:grid;place-items:center;font:normal 2.7rem Georgia,serif;color:#6f957f}
    .portrait-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:#64806c;font-weight:700}
    .process-grid{gap:25px}
    .step .step-count{margin-bottom:19px}
    .qa-list{border-top:1px solid #cbd7cc}
    .qa{border-bottom:1px solid #cbd7cc;padding:18px 0 14px}
    .qa h3{font-family:Arial,Helvetica,sans-serif;font-weight:700;letter-spacing:0;font-size:1rem;margin-bottom:6px}
    .qa p{font-size:.9rem;line-height:1.68;margin:0 0 5px}
    @media(max-width:960px){.hero-grid{gap:23px;grid-template-columns:1.07fr .93fr}.hero-art{min-height:470px}.about-grid{gap:34px}}
    @media(max-width:700px){.hero{padding:44px 0 59px}.hero-grid,.about-grid{grid-template-columns:1fr}.hero-art{min-height:380px;max-width:420px}.hero-art .ring{top:36px}.about-visual{min-height:300px;order:2}.portrait-placeholder{height:260px;width:75%;margin:20px 0 0 20px}.portrait-symbol{height:96px;width:96px;font-size:2rem}section.block{padding:65px 0}.service{min-height:0}.qa{padding:17px 0 13px}}
    @media(max-width:960px){
      .wrap{width:min(100% - 48px,1180px)}.hero-grid{gap:25px;grid-template-columns:1.07fr .93fr}.hero-art{min-height:520px}
      .nav{gap:18px}.section-head{align-items:start}.faq-grid{gap:50px}.contact-grid{gap:40px}
    }
    @media(max-width:700px){
      html{scroll-padding-top:25px}.wrap{width:calc(100% - 36px)}
      .header-inner{min-height:80px}.brand-copy strong{font-size:.78rem}.brand-copy small{font-size:.55rem}.mark{width:43px;height:43px}
      .nav a:not(.nav-cta){display:none}.nav .nav-cta{padding:9px 17px;font-size:.75rem}
      .hero{padding:48px 0 55px}.hero-grid,.about-grid,.faq-grid,.contact-grid{grid-template-columns:1fr}
      .hero-grid{gap:36px}.hero h1{font-size:clamp(3.3rem,13vw,4.9rem);margin:24px 0}.hero .lead{font-size:1.04rem}
      .hero-art{min-height:470px;max-width:500px;width:100%;margin:auto}.hero-art .ring{top:70px}.hero-art .ring.two{top:24px}
      .art-label{bottom:21px;padding:20px 22px}.art-label strong{font-size:1.5rem}
      .strip-content{padding:24px 0;min-height:0;display:grid;grid-template-columns:1fr 1fr;gap:17px}
      .strip-item{font-size:.7rem;gap:9px}.strip-icon{height:36px;width:36px}
      section.block{padding:72px 0}.section-head{display:block;margin-bottom:29px}.section-head p{margin:8px 0 0}
      .cards,.process-grid{grid-template-columns:1fr;gap:14px}.service{min-height:0;padding:29px}
      .about-grid{gap:24px}.about-visual{min-height:300px;order:2}.about-shape{height:97%}.about-card{margin:18px 0 0 20px;padding:30px;max-width:320px}.about-card p{font-size:1.75rem}
      .process-grid{gap:24px}.step .step-count{margin-bottom:12px}.faq-grid{gap:12px}
      .contact-grid{gap:22px}.contact-action{padding:20px 0 0;border-left:0;border-top:1px solid #688475}
      .footer-grid{align-items:start;flex-direction:column;gap:10px}
    }
    @media(max-width:390px){.nav .nav-cta{font-size:.7rem}.brand{gap:8px}.brand-copy strong{font-size:.72rem}.hero-art{min-height:410px}.strip-content{grid-template-columns:1fr}}

    .portrait-photo{position:relative;display:block;width:78%;height:370px;object-fit:cover;object-position:50% 38%;margin:19px 0 0 20px;border-radius:4px;z-index:1;box-shadow:0 19px 36px rgba(25,53,40,.14)}
    @media(max-width:700px){.portrait-photo{width:min(76%,350px);height:320px;margin:12px 0 0 16px;object-position:center 39%}}
    @media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn{transition:none}.btn:hover{transform:none}}
  

/* Netlify Forms: native HTML, no JavaScript required. */
.contact-grid{grid-template-columns:.83fr 1.17fr;align-items:start;gap:54px}
.contact-form-panel{background:#f6f7ef;color:#233e38;padding:32px;border-radius:16px;box-shadow:0 14px 40px rgba(7,24,18,.12)}
.contact .contact-form-panel p{color:#566a60;max-width:none}
.contact .form-kicker{font-weight:700;color:#29453b;text-transform:uppercase;letter-spacing:.12em;font-size:.74rem;margin:0 0 20px}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
.field label{font-size:.85rem;font-weight:700;color:#334c41}
.field input,.field textarea{display:block;width:100%;border:1px solid #9eafa5;background:#fffefa;border-radius:9px;padding:12px 14px;font:inherit;font-size:.94rem;line-height:1.45;color:#203d36;min-height:46px}
.field textarea{resize:vertical;min-height:112px}
.field input:focus-visible,.field textarea:focus-visible{outline:3px solid #adcaad;outline-offset:1px;border-color:#235d4b}
.field input::placeholder,.field textarea::placeholder{color:#737f78;opacity:1}
.contact .form-privacy{font-size:.78rem;line-height:1.6;color:#506559;margin-bottom:16px}
.contact .form-privacy a{color:#264b3c;text-decoration:underline;font-weight:700}
.form-submit{cursor:pointer;background:var(--pine);color:white;border:0;width:100%;font-size:.92rem;min-height:52px}
.form-submit:hover{background:#33554b}
.contact .form-small{font-size:.72rem;line-height:1.5;margin:14px 0 0;color:#5c7267}
.form-honeypot{position:absolute!important;clip:rect(0,0,0,0)!important;clip-path:inset(50%)!important;height:1px!important;width:1px!important;overflow:hidden!important;margin:-1px!important;padding:0!important;border:0!important;white-space:nowrap!important}
.contact .eyebrow,.contact h2{color:#fffdf4}
.contact .wrap>div:first-child p{color:#d0ddd1}
.about-foot{line-height:1.6}
.nav-cta:focus-visible,.form-submit:focus-visible{outline:3px solid #d8ecca;outline-offset:3px}
@media(max-width:960px){.contact-grid{grid-template-columns:1fr 1fr;gap:32px}.contact-form-panel{padding:25px}}
@media(max-width:700px){.contact-grid{grid-template-columns:1fr;gap:18px}.contact-form-panel{padding:23px}.contact .wrap>div:first-child p{max-width:55ch}}

/* The approved 2026-10-28 copy and new information sections */
.hero h1 em{font-weight:400;font-style:italic;color:#819f8c}
.hero-second{font-size:1.04rem;line-height:1.74;max-width:570px;margin:-11px 0 30px}
.hero .lead{margin-bottom:20px}
.about .text-link{display:inline-flex;align-items:center;gap:12px;margin-top:10px;font-weight:700;text-underline-offset:5px;text-decoration-thickness:1px;color:#264d3f}
.about .text-link:hover{text-decoration-thickness:2px}
.sfh{background:#f5f6f1}
.sfh-grid{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);gap:clamp(45px,7vw,110px)}
.sfh-side h2{font-size:clamp(2.6rem,3.6vw,4.1rem);max-width:510px}
.sfh-copy{border-left:1px solid #c6d4c8;padding-left:clamp(25px,4vw,53px)}
.sfh-copy p{font-size:1.025rem;line-height:1.81;margin-bottom:23px}
.sfh-copy p:last-child{margin-bottom:0}
.training{background:#e5ece4}
.training-grid{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);gap:clamp(45px,7vw,110px)}
.training-copy{max-width:690px}
.training-copy p{font-size:1.025rem;line-height:1.8}
.training-copy p:last-child{margin-bottom:0}
@media(max-width:850px){.sfh-grid,.training-grid{grid-template-columns:1fr;gap:18px}.sfh-side h2{max-width:750px}.sfh-copy{padding-left:0;border-left:0}.training-grid{gap:18px}}
@media(max-width:700px){.hero-second{font-size:1rem;margin:-4px 0 28px}.hero h1{font-size:clamp(3.0rem,11vw,4.9rem)}.sfh-copy p,.training-copy p{font-size:.98rem}.sfh-side h2{font-size:clamp(2.55rem,9vw,3.9rem)}}

/* Personal portrait brand mark in place of the GC monogram. */
.brand-photo{display:block;width:52px;height:52px;flex:none;object-fit:cover;object-position:center 38%;border-radius:50%;border:2px solid #b7cbbb;box-shadow:0 2px 7px rgba(35,62,50,.12)}
@media(max-width:700px){.brand-photo{width:44px;height:44px}}

/* V11: ocean-inspired visual treatment, retaining layout and approved copy */
:root{--ink:#203f47;--ink-soft:#506971;--muted:#657a7d;--sage:#d7e6e3;--light:#f9f8f4;--cream:#f1f5f3;--white:#fffefa;--border:#d7e4e3;--warm:#b9906c;--pine:#20525a}
body{background:var(--light)}
.header{background:#f9f8f4;border-bottom-color:#dfe8e6}
.hero{background:linear-gradient(135deg,#f9f8f4 32%,#e9f2ef 100%)}
.hero h1 em{color:#41808a}
.eyebrow{color:#4d7e84}.eyebrow::before{background:#b99c7c}
.hero-ocean{height:530px;min-height:0;overflow:hidden;position:relative;border-radius:185px 185px 14px 14px / 110px 110px 14px 14px;background:#327e92;isolation:isolate;box-shadow:0 24px 52px rgba(22,61,68,.15)}
.hero-video{width:100%;height:100%;display:block;object-fit:cover;object-position:50% 26%;filter:saturate(.77) contrast(.96);}
.hero-ocean::after{content:"";position:absolute;inset:40% 0 0;background:linear-gradient(0deg,rgba(11,45,60,.70),transparent);pointer-events:none;z-index:1}
.ocean-caption{position:absolute;z-index:2;bottom:27px;left:28px;right:25px;color:#fffdf6;text-shadow:0 1px 10px rgba(0,28,38,.18)}
.ocean-caption small{display:block;text-transform:uppercase;letter-spacing:.17em;font-size:.7rem;font-weight:700;margin-bottom:6px}
.ocean-caption strong{font:normal 1.75rem/1.15 Georgia,'Times New Roman',serif;letter-spacing:-.025em}
.btn.primary,.form-submit{background:#20525a}.btn.primary:hover,.form-submit:hover{background:#286b74}
.btn.outline{border-color:#9bb9b9}.btn.outline:hover{background:#e7f0ed}
.service{background:#fffefa;border-color:#dae4e0}
.sfh{background:#f1f6f4}.training{background:#e6efeb}
.about-shape{background:#dceae6}
.brand-photo{border-color:#a8c4c2}
@media(max-width:960px){.hero-ocean{height:510px}}
@media(max-width:700px){.hero-ocean{height:430px;max-width:500px;width:100%;margin:auto;border-radius:155px 155px 12px 12px / 100px 100px 12px 12px}.ocean-caption{bottom:22px;left:24px}.ocean-caption strong{font-size:1.5rem}}
@media(prefers-reduced-motion:reduce){.hero-video{display:none}.hero-ocean{background:#2e7a8c url('ocean-poster.jpg') center 26%/cover no-repeat}}
/* Wide cinematic ocean window, avoiding an excessively tight crop of the horizon. */
.hero-ocean{height:390px;min-height:390px;border-radius:170px 170px 16px 16px / 105px 105px 16px 16px}
@media(max-width:960px){.hero-ocean{height:350px;min-height:350px}}
@media(max-width:700px){.hero-ocean{height:300px;min-height:300px;border-radius:125px 125px 14px 14px / 80px 80px 14px 14px}}

/* V13 - clean, wider split-screen video composition */
.hero{padding:76px 0 88px;background:linear-gradient(115deg,#faf9f5 0%,#eef5f1 100%)}
.hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.06fr);gap:clamp(28px,4vw,58px);align-items:center}
.hero-ocean{height:460px;min-height:0;width:100%;max-width:none;border-radius:16px;box-shadow:0 18px 40px rgba(27,72,82,.12);background:#367987 url('ocean-poster.jpg') center /cover no-repeat}
.hero-video{object-position:center center;filter:saturate(.85) contrast(.99)}
.hero-ocean::after{inset:58% 0 0;background:linear-gradient(0deg,rgba(9,43,54,.65),transparent)}
.ocean-caption{left:25px;bottom:24px}
.ocean-caption strong{font-size:1.55rem}
@media(max-width:960px){.hero{padding:60px 0 70px}.hero-grid{grid-template-columns:1fr 1fr;gap:26px}.hero-ocean{height:390px;border-radius:14px}}
@media(max-width:700px){.hero{padding:48px 0 64px}.hero-grid{grid-template-columns:1fr;gap:30px}.hero-ocean{height:330px;max-width:none;border-radius:14px}.ocean-caption{bottom:22px;left:23px}}
@media(max-width:390px){.hero-ocean{height:260px}}
@media(prefers-reduced-motion:reduce){.hero-video{display:none}.hero-ocean{background:#2e7a8c url('ocean-poster.jpg') center center/cover no-repeat}}

/* V14: portrait above introduction; balanced 2×2 service grid */
@media(min-width:701px){
  .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .service{min-height:214px}
}
.about-grid{display:flex;flex-direction:column;gap:34px;align-items:center}
.about-visual{width:min(100%,370px);min-height:390px;flex:none}
.about-shape{width:94%;left:3%;height:96%}
.portrait-photo{width:86%;height:365px;margin:16px auto 0}
.about-copy{width:min(100%,760px);align-self:center}
.about-copy p{max-width:740px}
@media(max-width:700px){
  .about-grid{gap:24px}
  .about-visual{order:0;width:min(100%,340px);min-height:320px}
  .portrait-photo{width:86%;height:306px;margin:12px auto 0}
  .about-copy{order:1}
}

/* V16: side-by-side portrait and introduction on desktop, stacked on mobile */
@media (min-width:701px){
  .about-grid{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:clamp(34px,6vw,90px);align-items:center}
  .about-visual{width:100%;min-height:420px;order:initial}
  .about-shape{width:94%;left:3%}
  .portrait-photo{width:86%;height:400px;margin:16px auto 0}
  .about-copy{width:100%;align-self:center;order:initial}
  .about-copy p{max-width:550px}
}
@media (max-width:700px){
  .about-grid{display:flex;flex-direction:column;gap:24px;align-items:center}
  .about-visual{order:0;width:min(100%,340px);min-height:320px}
  .about-copy{order:1;width:100%}
}

/* V17 — ocean video takes a more prominent role without becoming a background */
@media(min-width:961px){
  .hero{padding:54px 0 66px}
  .hero .wrap.hero-grid{width:min(100% - 64px,1320px);grid-template-columns:minmax(0,.83fr) minmax(0,1.17fr);gap:clamp(26px,3vw,48px)}
  .hero-ocean{height:clamp(480px,42vw,600px);border-radius:12px;box-shadow:0 18px 45px rgba(25,66,75,.14)}
  .hero-video{object-position:center center}
}
@media(min-width:701px) and (max-width:960px){
  .hero-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:22px}
  .hero-ocean{height:460px;border-radius:12px}
}
@media(max-width:700px){
  .hero-grid{gap:26px}
  .hero-ocean{height:clamp(310px,76vw,420px);border-radius:12px}
}


/* V21: full-width ocean video with a LIGHT, edge-to-edge veil, not an opaque text card.
   Video keeps its natural sea/sky colours on the right; text is placed over a
   near-cream gradient on the left for reliable contrast. */
.hero.hero-background {
  position:relative; isolation:isolate; overflow:hidden; display:block;
  min-height:640px; padding:90px 0 95px; background:#d8e9e6;
}
.hero-background .hero-ocean {
  position:absolute; z-index:0; inset:0; width:100%; height:100%;
  min-height:0; max-width:none; border:0; border-radius:0; box-shadow:none;
  background:#b4d6d7 url('ocean-poster.jpg') center 45% / cover no-repeat;
}
.hero-background .hero-video {
  display:block; position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:center 45%;
  filter:brightness(1.08) saturate(.72) contrast(.94);
}
/* Overlay is applied across the scene, without a panel, and fades towards sea. */
.hero-background .hero-ocean::after {
  content:''; position:absolute; z-index:1; inset:0; pointer-events:none;
  background:linear-gradient(90deg,
    rgba(249,250,245,.98) 0%,
    rgba(249,250,245,.93) 27%,
    rgba(249,250,245,.79) 44%,
    rgba(249,250,245,.30) 69%,
    rgba(249,250,245,.06) 100%);
}
.hero-background .wrap.hero-grid {
  position:relative; z-index:2; display:block; width:min(1180px,calc(100% - 80px));
  margin:0 auto;
}
.hero-background .hero-content {
  display:block; width:min(100%,615px); padding:0; border:0; border-radius:0;
  background:transparent; box-shadow:none; backdrop-filter:none;
}
.hero-background h1 {color:#203f47;max-width:650px;font-size:clamp(3.65rem,6.2vw,6.5rem);text-wrap:balance;}
.hero-background h1 em {color:#316a71}
.hero-background .lead,.hero-background .hero-second {color:#344e53;max-width:535px}
.hero-background .eyebrow {color:#416d71}
.hero-background .actions {margin-bottom:0}
.hero-background .btn.outline {background:rgba(249,250,245,.34)}
.hero-background .btn.outline:hover {background:rgba(249,250,245,.9)}
@media (min-width:1100px) {
  .hero-background .hero-content {width:615px}
}
@media (min-width:701px) and (max-width:1100px) {
  .hero.hero-background {min-height:610px;padding:72px 0 76px}
  .hero-background .hero-content {width:min(100%,550px)}
  .hero-background .hero-ocean::after {
    background:linear-gradient(90deg,rgba(249,250,245,.98),rgba(249,250,245,.93) 34%,rgba(249,250,245,.50) 73%,rgba(249,250,245,.19));
  }
  .hero-background .wrap.hero-grid {width:calc(100% - 72px)}
}
@media (max-width:700px) {
  .hero.hero-background {min-height:660px;padding:51px 0 85px}
  .hero-background .wrap.hero-grid {width:calc(100% - 42px)}
  .hero-background .hero-content {width:100%}
  .hero-background h1 {font-size:clamp(3.1rem,11.4vw,4.6rem);line-height:1.07;margin:24px 0 23px}
  .hero-background .hero-video {object-position:center 40%}
  .hero-background .hero-ocean {background-position:center 40%}
  .hero-background .hero-ocean::after {
    background:linear-gradient(180deg,
      rgba(249,250,245,.98) 0%,
      rgba(249,250,245,.94) 42%,
      rgba(249,250,245,.76) 68%,
      rgba(249,250,245,.32) 100%);
  }
  .hero-background .lead {font-size:1.08rem;line-height:1.65}
  .hero-background .hero-second {font-size:1rem;line-height:1.68}
  .hero-background .actions {margin-top:24px}
}
@media(max-width:390px) {
  .hero.hero-background {min-height:690px;padding-top:45px}
  .hero-background .wrap.hero-grid {width:calc(100% - 34px)}
  .hero-background h1 {font-size:clamp(2.95rem,12vw,3.4rem)}
}
@media(prefers-reduced-motion:reduce) {
  .hero-background .hero-video {display:none}
  .hero-background .hero-ocean {background:#b4d6d7 url('ocean-poster.jpg') center 45% /cover no-repeat}
}


/* V23: preserve the approved headline as two clean lines on all viewports.
   The previous 6.2vw scale enlarged the italic line beyond its 615px column
   on wide screens, causing New / possibilities to split unexpectedly. */
.hero-background h1 {
  font-size:clamp(3.65rem,5.45vw,5.15rem);
  line-height:1.07;
  text-wrap:initial;
}
.hero-background h1 em {
  display:inline-block;
  white-space:nowrap;
}
@media (max-width:700px) {
  .hero-background h1 {
    font-size:clamp(2.45rem,11vw,4.3rem);
    line-height:1.08;
  }
}
@media (max-width:390px) {
  .hero-background h1 {
    font-size:clamp(2.45rem,11vw,3rem);
  }
}

/* V24: iOS-compatible ocean video fallback when autoplay is blocked. */
.hero.hero-background{position:relative}

/* V29: concise service copy is presented as a compact, balanced 3+2 grid. */
#areas.block { padding-top:82px; padding-bottom:90px; }
#areas .section-head { margin-bottom:30px; }
#areas .cards { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:16px; }
#areas .service { grid-column:span 2; min-height:0; padding:29px 30px 31px; border-radius:12px; border:1px solid #dce7e2; box-shadow:0 6px 20px rgba(33,73,70,.035); position:relative; }
#areas .service:nth-child(n+4) { grid-column:span 3; }
#areas .service::before { content:""; display:block; height:2px; width:39px; background:#9cbfb8; margin-bottom:21px; }
#areas .service h3 { font-size:1.31rem; line-height:1.28; margin-bottom:12px; }
#areas .service p { font-size:.94rem; line-height:1.65; }
@media(max-width:960px) and (min-width:701px) {
 #areas .cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
 #areas .service, #areas .service:nth-child(n+4) {grid-column:auto;}
 #areas .service:last-child {grid-column:1/-1;}
}
@media(max-width:700px){
 #areas.block { padding-top:66px; padding-bottom:72px; }
 #areas .cards { grid-template-columns:1fr; gap:13px; }
 #areas .service, #areas .service:nth-child(n+4), #areas .service:last-child { grid-column:1; padding:24px 25px 26px; }
 #areas .service::before { margin-bottom:16px; }
}

/* V30: original translucent ocean treatment; position hero wording higher on desktop. */
@media (min-width:701px) {
  .hero-background .hero-content {transform:translateY(-60px)}
}
@media (max-width:700px) {
  .hero-background .hero-content {transform:none}
}

/* V33: sea loop background for the contact / CTA section */
.contact{background:#173832;color:#f4f6ee;position:relative;overflow:hidden;isolation:isolate}
.contact:before,.contact:after{display:none}
.contact-video-bg{position:absolute;inset:0;z-index:0;overflow:hidden;background:#173832}
.contact-video{width:100%;height:100%;display:block;object-fit:cover;object-position:center center;filter:saturate(.96) contrast(.94) brightness(.84)}
.contact-video-bg::after{content:"";position:absolute;inset:0;background:
  linear-gradient(180deg,
    rgba(255,255,255,.76) 0%,
    rgba(255,255,255,.52) 18%,
    rgba(255,255,255,.26) 38%,
    rgba(255,255,255,.10) 62%,
    rgba(255,255,255,.04) 100%),
  linear-gradient(90deg,
    rgba(248,248,242,.58) 0%,
    rgba(248,248,242,.44) 24%,
    rgba(248,248,242,.24) 48%,
    rgba(248,248,242,.18) 100%);}
.contact-grid{position:relative;z-index:2}
.contact h2{color:#fffdf4}.contact .eyebrow{color:#dce9df}.contact p{color:#edf3ec;max-width:610px;text-shadow:0 1px 10px rgba(0,0,0,.10)}
.contact .eyebrow::before{background:rgba(245,233,216,.72)}
.contact .contact-form-panel{background:rgba(250,251,246,.94);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:0 18px 44px rgba(7,24,18,.18);border:1px solid rgba(231,239,232,.72)}
.contact .form-kicker{color:#35564f}.contact .form-privacy,.contact .form-small{color:#576d65}.contact .field label{color:#304940}.contact .field input,.contact .field textarea{background:rgba(255,255,250,.96)}
@media (prefers-reduced-motion: reduce){.contact-video{display:none}.contact-video-bg{background:url('see-whats-possible-loop-poster.jpg') center center/cover no-repeat #173832}}
@media (max-width:700px){.contact-video{object-position:center center}.contact-video-bg::after{background:linear-gradient(180deg, rgba(17,48,44,.62) 0%, rgba(17,48,44,.48) 30%, rgba(17,48,44,.60) 100%);} .contact p{max-width:55ch}}

/* V35: light sea backdrop, visibly animated, with dark readable copy */
.contact{background:#b4dfdd;color:#173f49}
.contact-video-bg{background:#b4dfdd url('see-whats-possible-loop-poster.jpg') center center/cover no-repeat}
.contact-video{filter:none;opacity:1;object-fit:cover;object-position:center center}
.contact-video-bg::after{background:linear-gradient(90deg,rgba(249,251,246,.92) 0%,rgba(249,251,246,.81) 29%,rgba(249,251,246,.48) 53%,rgba(249,251,246,.08) 100%)}
.contact h2{color:#183f49}
.contact .eyebrow{color:#285b63}
.contact .wrap>div:first-child p,.contact p{color:#254c55;text-shadow:none}
.contact .eyebrow::before{background:#558e93}
.contact .contact-form-panel{background:rgba(255,255,251,.96);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
@media(max-width:700px){
 .contact-video-bg::after{background:linear-gradient(180deg,rgba(250,252,248,.90) 0%,rgba(250,252,248,.80) 38%,rgba(250,252,248,.35) 74%,rgba(250,252,248,.20) 100%)}
 .contact .wrap>div:first-child p{color:#254c55}
}
@media(prefers-reduced-motion:reduce){.contact-video{display:none}.contact-video-bg{background:#b4dfdd url('see-whats-possible-loop-poster.jpg') center/cover no-repeat}}

/* V36: Coastal palette harmonised with the new sea-and-sand contact video. */
:root{
 --ink:#173f49;--ink-soft:#42616b;--muted:#627b80;
 --sage:#d6eae7;--light:#fbf9f4;--cream:#f6f1e7;
 --white:#fffdfa;--border:#cce2e0;--warm:#c69d78;--pine:#176879;
}
body{background:#fbf9f4;color:var(--ink)}
.header{background:#fcfaf5;border-bottom-color:#e0e8e4}
.brand-copy strong{color:#173f49}.brand-copy small{color:#527d83}
.brand-photo{border-color:#8ec8c3}
.nav a{color:#315a62}.nav .nav-cta{border-color:#8fbebd;color:#155b69}
.nav .nav-cta:hover{background:#e4f4f1}
.eyebrow{color:#3b7981}.eyebrow::before{background:#cfaa81}
h1,h2,h3{color:#173f49}
.hero-background h1{color:#173f49}.hero-background h1 em{color:#267c87}
.hero-background .eyebrow{color:#356e78}
.hero-background .hero-ocean::after{background:linear-gradient(90deg,rgba(251,249,244,.95) 0%,rgba(251,249,244,.88) 27%,rgba(251,249,244,.71) 44%,rgba(251,249,244,.27) 69%,rgba(251,249,244,.04) 100%)}
.hero-background .lead,.hero-background .hero-second{color:#355b65}
.btn.primary,.form-submit{background:#176879;color:white}.btn.primary:hover,.form-submit:hover{background:#125565}
.btn.outline{border-color:#94c0bf;color:#205d69}
.btn.outline:hover{background:rgba(229,246,242,.87)}
#areas.block{background:linear-gradient(180deg,#fbf9f4 0%,#f5f9f6 100%)}
#areas .service{background:#fffdfa;border:1px solid #d7e8e4;box-shadow:0 8px 25px rgba(21,86,94,.045)}
#areas .service::before{background:#69adb1}
#areas .service h3{color:#194f5b}
.about{background:#e6f2ee}.about-shape{background:linear-gradient(140deg,#beded7,#e7eee8)}
.portrait-photo{box-shadow:0 20px 42px rgba(35,90,95,.13)}
.about-copy .text-link{color:#146575}
.sfh{background:#fdfaf4}.sfh-copy{border-left-color:#bddbd7}
.training{background:#dff0ed}.training-copy p{color:#365e64}
.faq{background:#eff6f2}.qa-list,.qa{border-color:#bfd8d3}.qa h3{color:#1d5965}
.contact .contact-form-panel{background:rgba(255,253,248,.96);border-color:rgba(255,255,255,.76)}
.contact .form-kicker{color:#276575}.contact .field label{color:#24535e}
.contact .field input,.contact .field textarea{border-color:#9fbfc0;background:#fffefb}
.footer{background:#185564}.footer p{color:#d5e8e6}.footer a{color:#f1f5eb}
.privacy-note{background:#f8f5ed;color:#5a7778}
@media(min-width:701px) and (max-width:1100px){
 .hero-background .hero-ocean::after{background:linear-gradient(90deg,rgba(251,249,244,.97),rgba(251,249,244,.90) 34%,rgba(251,249,244,.48) 73%,rgba(251,249,244,.13))}
}
@media(max-width:700px){
 .hero-background .hero-ocean::after{background:linear-gradient(180deg,rgba(251,249,244,.98) 0%,rgba(251,249,244,.91) 42%,rgba(251,249,244,.74) 68%,rgba(251,249,244,.26) 100%)}
 .sfh-copy{border:0}
}

/* V38: final, high-specificity white fade for the contact sea loop. */
section.contact .contact-video-bg::after {
  background: linear-gradient(180deg,
    rgba(255,255,255,.98) 0%,
    rgba(255,255,255,.89) 18%,
    rgba(255,255,255,.59) 40%,
    rgba(255,255,255,.23) 66%,
    rgba(255,255,255,.04) 100%) !important;
}
@media (max-width:700px) {
  section.contact .contact-video-bg::after {
    background:linear-gradient(180deg,
      rgba(255,255,255,.96) 0%,
      rgba(255,255,255,.81) 24%,
      rgba(255,255,255,.45) 52%,
      rgba(255,255,255,.10) 100%) !important;
  }
}

/* V39: extend the actual moving sea background seamlessly behind the footer. */
.coastal-ending {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: #b8dfe0;
}
.coastal-ending > .contact-video-bg {
  position: absolute;
  inset: 0;
  z-index: -1;
  overflow: hidden;
}
.coastal-ending .contact {
  background: transparent;
  overflow: visible;
  isolation: auto;
}
.coastal-ending .footer {
  position: relative;
  z-index: 2;
  background: transparent;
  border-top: 0;
  color: #173f49;
}
.coastal-ending .footer p,
.coastal-ending .footer a {
  color: #174954;
}
.coastal-ending .footer a {
  font-weight: 700;
  text-underline-offset: 4px;
}
.coastal-ending .footer a:hover,
.coastal-ending .footer a:focus-visible {
  color: #086a79;
}
.coastal-ending .footer a:focus-visible {
  outline: 3px solid #176879;
  outline-offset: 3px;
}
/* A little more opacity behind footer links, without hiding the moving sea. */
.coastal-ending > .contact-video-bg::after {
  background: linear-gradient(180deg,
    rgba(255,255,255,.99) 0%,
    rgba(255,255,255,.90) 18%,
    rgba(255,255,255,.66) 38%,
    rgba(255,255,255,.36) 64%,
    rgba(255,255,255,.46) 100%) !important;
}
@media(max-width:700px) {
  .coastal-ending > .contact-video-bg::after {
    background: linear-gradient(180deg,
      rgba(255,255,255,.98) 0%,
      rgba(255,255,255,.88) 20%,
      rgba(255,255,255,.58) 48%,
      rgba(255,255,255,.56) 100%) !important;
  }
  .coastal-ending .footer { padding: 25px 0 30px; }
}

/* V40: bias the beach video crop downward to show more sand and less sky. */
.coastal-ending > .contact-video-bg .contact-video {object-position: 50% 90%;}
.coastal-ending > .contact-video-bg {background-position: 50% 90%;}
@media(max-width:700px){.coastal-ending > .contact-video-bg .contact-video {object-position: 50% 90%;}}
@media(prefers-reduced-motion:reduce){.coastal-ending > .contact-video-bg{background-position:50% 90%;}}

/* V43: White sky fade added above the original horizontal veil. */
.hero.hero-background .hero-ocean::after {background:linear-gradient(180deg,rgba(255,255,255,.90) 0%,rgba(255,255,255,.65) 14%,rgba(255,255,255,.26) 31%,transparent 48%),linear-gradient(90deg,rgba(251,249,244,.95) 0%,rgba(251,249,244,.88) 27%,rgba(251,249,244,.71) 44%,rgba(251,249,244,.27) 69%,rgba(251,249,244,.04) 100%)}
@media(min-width:701px) and (max-width:1100px){.hero.hero-background .hero-ocean::after{background:linear-gradient(180deg,rgba(255,255,255,.90),rgba(255,255,255,.42) 27%,transparent 48%),linear-gradient(90deg,rgba(251,249,244,.97),rgba(251,249,244,.90) 34%,rgba(251,249,244,.48) 73%,rgba(251,249,244,.13))}}
@media(max-width:700px){.hero.hero-background .hero-ocean::after{background:linear-gradient(180deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.93) 26%,rgba(251,249,244,.82) 47%,rgba(251,249,244,.40) 72%,rgba(251,249,244,.14) 100%)}}

/* V45: stronger sky-only fade, after all earlier hero rules. */
.hero.hero-background .hero-ocean::after {
 background: linear-gradient(180deg, rgba(255,255,255,.99) 0%, rgba(255,255,255,.91) 17%, rgba(255,255,255,.66) 32%, rgba(255,255,255,.19) 49%, transparent 60%), linear-gradient(90deg,rgba(251,249,244,.95) 0%,rgba(251,249,244,.88) 27%,rgba(251,249,244,.71) 44%,rgba(251,249,244,.27) 69%,rgba(251,249,244,.04) 100%);
}
@media(min-width:701px) and (max-width:1100px){
.hero.hero-background .hero-ocean::after {background:linear-gradient(180deg,rgba(255,255,255,.99) 0%,rgba(255,255,255,.88) 17%,rgba(255,255,255,.59) 34%,transparent 57%),linear-gradient(90deg,rgba(251,249,244,.97),rgba(251,249,244,.90) 34%,rgba(251,249,244,.48) 73%,rgba(251,249,244,.13));}
}
@media(max-width:700px){
.hero.hero-background .hero-ocean::after {background:linear-gradient(180deg,rgba(255,255,255,.99) 0%,rgba(255,255,255,.96) 27%,rgba(251,249,244,.86) 47%,rgba(251,249,244,.40) 72%,rgba(251,249,244,.14) 100%);}
}

/* V54: contact preference checkbox, naturally placed after email */
.contact-checkbox-row{margin:-2px 0 17px;}
.contact-checkbox-label{display:flex;align-items:flex-start;gap:10px;font-size:.94rem;line-height:1.45;font-weight:500;color:#24535e;cursor:pointer;}
.contact-checkbox-label input[type="checkbox"]{width:18px;height:18px;flex:0 0 18px;margin:2px 0 0;accent-color:#267c87;cursor:pointer;}
.contact-checkbox-label input[type="checkbox"]:focus-visible{outline:3px solid #267c87;outline-offset:3px;}
