/* ==========================================================================
   SGS Transformational Coaching — "Sunlit conversation"
   Warm linen paper, Susan's navy as the anchor, cornflower from her floral
   dress and linen shirts, coral and honey for energy and optimism.
   Fonts are self-hosted (SIL OFL; licences in assets/fonts).
   ========================================================================== */

@font-face{font-family:'Fraunces';font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/fraunces-soft-normal.woff2) format('woff2')}
@font-face{font-family:'Fraunces';font-style:italic;font-weight:100 900;font-display:swap;src:url(../fonts/fraunces-soft-italic.woff2) format('woff2')}
@font-face{font-family:'Figtree';font-style:normal;font-weight:300 900;font-display:swap;src:url(../fonts/figtree-normal.woff2) format('woff2')}
@font-face{font-family:'SGS Hand';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/caveat-700-subset.woff2) format('woff2')}

:root{
  --ink:#13283a;--ink-deep:#0d1d2b;--muted:#4a5a68;--on-ink-muted:#c3d0da;
  --paper:#fbf6ee;--linen:#f4ebdc;--white:#fff;
  --corn:#3656b8;--corn-light:#a9c0f5;--sky:#e3ebfc;
  --coral:#f07a57;--coral-deep:#b3401f;
  --honey:#f6c453;--honey-light:#fcefc9;
  --mint:#bce8df;--mint-light:#e3f4ef;--teal:#23655b;
  --line:rgba(19,40,58,.14);--field:#6f8190;
  --serif:'Fraunces',Georgia,'Times New Roman',serif;
  --sans:'Figtree','Segoe UI',system-ui,-apple-system,Arial,sans-serif;
  --hand:'SGS Hand','Segoe Print','Bradley Hand',cursive;
  --r-sm:14px;--r-md:22px;--r-lg:32px;
  --shadow:0 24px 60px -28px rgba(19,40,58,.45);
  --shadow-soft:0 14px 36px -20px rgba(19,40,58,.35);
  --ease-out:cubic-bezier(.22,1,.36,1);--ease-spring:cubic-bezier(.34,1.56,.64,1);
  --gutter:clamp(20px,5vw,64px);
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:100px;-webkit-text-size-adjust:100%}
body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);font-size:1.0625rem;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
main{overflow-x:clip}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-underline-offset:.25em;text-decoration-thickness:1px}
h1,h2,h3,p,figure,blockquote,ul,ol{margin:0}
ul,ol{padding:0;list-style:none}
h1,h2,h3{font-family:var(--serif);font-weight:400;font-variation-settings:'SOFT' 100;text-wrap:balance}
h1{font-size:clamp(2.9rem,1.45rem + 4.9vw,5.8rem);line-height:.98;letter-spacing:-.035em}
h2{font-size:clamp(2.3rem,1.35rem + 3.3vw,4.3rem);line-height:1.04;letter-spacing:-.03em}
h3{font-size:1.5rem;line-height:1.2;letter-spacing:-.015em;font-weight:500}
h1 em,h2 em,h3 em{font-style:italic;color:var(--corn);font-weight:400}
p{text-wrap:pretty}
button,input,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:3px solid var(--corn);outline-offset:4px;border-radius:6px}
.icon{width:1em;height:1em;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.icon-sprite{position:absolute;width:0;height:0;overflow:hidden}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.shell{width:min(1240px,100% - var(--gutter)*2);margin-inline:auto}
.section-space{padding-block:clamp(72px,9vw,140px)}
.eyebrow{display:flex;align-items:center;gap:.7rem;font-size:.8rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;line-height:1.5;margin-bottom:1.25rem;color:var(--coral-deep)}
.hand{font-family:var(--hand);font-weight:700;letter-spacing:0}
.image-note{display:block;color:var(--muted);font:400 .78rem/1.5 var(--sans);letter-spacing:0;font-style:normal}
.skip-link{position:absolute;top:10px;left:10px;padding:12px 20px;background:var(--ink);color:#fff;border-radius:999px;transform:translateY(-160%);z-index:50;font-weight:600}
.skip-link:focus{transform:none}

/* ---------- Buttons and links ---------- */
.button{display:inline-flex;align-items:center;justify-content:center;gap:.7rem;min-height:52px;padding:.8rem 1.55rem;border:0;border-radius:999px;font:600 1rem/1.2 var(--sans);text-decoration:none;text-align:center;cursor:pointer;transition:background-color .25s,color .25s,transform .35s var(--ease-spring),box-shadow .35s}
.button .icon{font-size:1.15em;transition:transform .35s var(--ease-spring)}
.button:hover{transform:translateY(-3px)}
.button:hover .icon{transform:translate(3px,-3px)}
.button:active{transform:translateY(0) scale(.98)}
.button-coral{background:var(--coral);color:var(--ink);box-shadow:0 12px 26px -14px rgba(179,64,31,.8)}
.button-coral:hover{background:var(--ink);color:#fff;box-shadow:0 18px 34px -16px rgba(19,40,58,.7)}
.button-ink{background:var(--ink);color:#fff}
.button-ink:hover{background:var(--corn)}
.button-large{min-height:62px;padding-inline:2rem;font-size:1.1rem}
.text-link{display:inline-flex;align-items:center;gap:.45rem;font-weight:600;text-decoration:none;background:linear-gradient(var(--coral),var(--coral)) left bottom/100% 2px no-repeat;padding-bottom:3px;transition:background-size .3s var(--ease-out),color .2s}
.text-link:hover{background-size:100% 100%;background-image:linear-gradient(var(--honey-light),var(--honey-light)),linear-gradient(var(--coral),var(--coral));background-size:100% 100%,100% 2px;background-position:left bottom,left bottom}
.text-link .icon{transition:transform .3s var(--ease-spring)}
.text-link:hover .icon{transform:translate(2px,-2px)}

/* ---------- Header ---------- */
.site-header{position:relative;z-index:20;background:rgba(251,246,238,.9);transition:box-shadow .3s,background-color .3s}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;min-height:92px;transition:min-height .3s var(--ease-out)}
.brand{display:block;flex:none;width:clamp(170px,18vw,230px);border-radius:8px}
.brand img{width:100%;filter:brightness(0);opacity:.88}
.site-nav{display:flex;align-items:center;gap:clamp(1rem,2.4vw,2.2rem);font-size:.95rem;font-weight:600}
.site-nav a:not(.nav-contact){text-decoration:none;padding-block:.35rem;background:linear-gradient(var(--coral),var(--coral)) left bottom/0 2px no-repeat;transition:background-size .3s var(--ease-out)}
.site-nav a:not(.nav-contact):hover{background-size:100% 2px}
.nav-contact{display:inline-flex;align-items:center;gap:.5rem;min-height:46px;padding:.55rem 1.2rem;border-radius:999px;background:var(--ink);color:#fff;text-decoration:none;transition:background-color .25s,color .25s,transform .35s var(--ease-spring)}
.nav-contact:hover{background:var(--coral);color:var(--ink);transform:translateY(-2px)}
.nav-contact[aria-current="page"]{background:var(--coral);color:var(--ink)}
@media (min-width:761px){
  .site-header{position:sticky;top:0;-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px)}
  .site-header.is-scrolled{box-shadow:0 10px 30px -22px rgba(19,40,58,.55)}
  .site-header.is-scrolled .header-inner{min-height:72px}
}
.scroll-progress{display:none}
@supports (animation-timeline:scroll()){
  .scroll-progress{display:block;position:fixed;inset:0 0 auto 0;height:4px;z-index:40;background:linear-gradient(90deg,var(--coral),var(--honey));transform-origin:0 50%;animation:progress linear both;animation-timeline:scroll(root)}
  @keyframes progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}
}

/* ---------- Hero ---------- */
.hero{position:relative;overflow:clip;padding-block:clamp(28px,4vw,64px) clamp(70px,8vw,112px);isolation:isolate}
.hero-glow{position:absolute;inset:0;z-index:-1;pointer-events:none;transform:translate3d(calc(var(--px,0)*-28px),calc(var(--py,0)*-22px),0);transition:transform .9s var(--ease-out)}
.glow{position:absolute;border-radius:50%;opacity:.9}
.glow-a{width:46vw;height:46vw;max-width:640px;max-height:640px;right:-6vw;top:2%;background:radial-gradient(closest-side,rgba(169,192,245,.75),rgba(169,192,245,0))}
.glow-b{width:34vw;height:34vw;max-width:480px;max-height:480px;right:26vw;bottom:-12vw;background:radial-gradient(closest-side,rgba(246,196,83,.55),rgba(246,196,83,0))}
.glow-c{width:28vw;height:28vw;max-width:380px;max-height:380px;left:-10vw;top:10%;background:radial-gradient(closest-side,rgba(240,122,87,.28),rgba(240,122,87,0))}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(36px,5vw,84px);align-items:center}
.hero-eyebrow{color:var(--ink)}
.pulse{position:relative;width:10px;height:10px;border-radius:50%;background:var(--coral);flex:none}
.pulse::after{content:'';position:absolute;inset:0;border-radius:50%;background:var(--coral);opacity:.5}
.hero h1{margin-bottom:1.6rem}
.hero h1 .line{display:block;overflow:clip;padding-bottom:.06em;margin-bottom:-.06em;overflow-clip-margin:0 .2em .1em 0}
.hero h1 .line>span{display:inline-block}
.scribble{position:relative;white-space:nowrap}
.scribble-line{position:absolute;left:-2%;bottom:-.1em;width:104%;height:.26em;overflow:visible;pointer-events:none}
.scribble-line path{fill:none;stroke:var(--coral);stroke-width:7;stroke-linecap:round;vector-effect:non-scaling-stroke}
.hero-question{font-family:var(--serif);font-variation-settings:'SOFT' 100;font-size:clamp(1.45rem,1.1rem + 1.2vw,2.1rem);line-height:1.25;letter-spacing:-.015em;max-width:24ch}
.hero-question strong{font-weight:500;font-style:italic;background:linear-gradient(transparent 58%,var(--honey) 58%,var(--honey) 90%,transparent 90%) left/100% 100% no-repeat;padding-inline:.08em}
.hero-description{margin-top:1.1rem;max-width:36ch;font-size:1.15rem;color:var(--muted)}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1.1rem 1.8rem;margin-top:2rem}
.hero-credibility{display:flex;align-items:center;gap:.6rem;margin-top:1.8rem;font-size:.95rem;font-weight:600;color:var(--ink)}
.hero-credibility .icon{color:var(--coral);fill:var(--coral);stroke:none;font-size:1.1rem}
.hero-portrait{position:relative;justify-self:end;width:min(100%,420px);margin-right:clamp(0px,2vw,24px)}
.hero-portrait::before{content:'';position:absolute;z-index:-1;width:38%;aspect-ratio:1;left:-12%;top:-5%;border-radius:50%;background:var(--honey)}
.arch-backdrop{position:absolute;z-index:-1;inset:5% -6% 14% 10%;border-radius:999px 999px 36px 36px;background:var(--corn);rotate:4deg}
.arch{position:relative;overflow:hidden;border-radius:999px 999px 36px 36px;aspect-ratio:4/5;background:var(--sky);box-shadow:var(--shadow)}
.arch img{width:100%;height:100%;object-fit:cover;object-position:50% 28%}
.hero-chip{position:absolute;display:flex;align-items:center;gap:.7rem;padding:.75rem 1.1rem;border-radius:20px;background:var(--white);box-shadow:var(--shadow-soft);line-height:1.2}
.chip-years{left:-16%;bottom:24%}
.chip-years strong{font:500 2.1rem/1 var(--serif);font-variation-settings:'SOFT' 100;color:var(--coral-deep)}
.chip-years span{font-size:.82rem;font-weight:600;color:var(--muted)}
.chip-motto{right:-9%;top:9%;background:var(--honey-light);rotate:-5deg}
.chip-motto .hand{font-size:1.45rem;color:var(--ink)}
.hero-portrait figcaption{display:flex;flex-direction:column;gap:.1rem;margin-top:1.4rem;padding-left:.4rem}
.caption-name{font:500 1.25rem/1.3 var(--serif);font-variation-settings:'SOFT' 100}
.hero-portrait figcaption>span:nth-child(2){font-size:.92rem;color:var(--muted)}
.hero-portrait .image-note{margin-top:.2rem}

/* ---------- Ribbon ---------- */
.ribbon{position:relative;z-index:2;background:var(--coral);color:var(--ink);overflow:hidden;rotate:-1.6deg;width:104%;margin:-6px -2% 0}
.ribbon-track{display:flex;width:max-content;will-change:transform}
.ribbon-set{display:flex;align-items:center;gap:1.4rem;padding:1.05rem .7rem;flex:none}
.ribbon-set span{font:italic 400 clamp(1.3rem,1rem + 1vw,1.9rem)/1.1 var(--serif);font-variation-settings:'SOFT' 100;white-space:nowrap}
.ribbon-set .icon{fill:var(--ink);stroke:none;font-size:1rem}

/* ---------- Coaching ---------- */
.section-head{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:1.5rem clamp(32px,6vw,100px);align-items:end;margin-bottom:clamp(40px,5vw,72px)}
.section-head .eyebrow{grid-column:1/-1;margin-bottom:0}
.section-lede{color:var(--muted);font-size:1.12rem;max-width:40ch}
.situations{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,26px)}
.situation{position:relative;display:flex;flex-direction:column;min-height:330px;padding:clamp(26px,3vw,38px);border-radius:var(--r-lg);overflow:hidden;isolation:isolate;transition:translate .45s var(--ease-spring),rotate .45s var(--ease-spring),box-shadow .45s}
.situation::after{content:'';position:absolute;z-index:-1;width:220px;aspect-ratio:1;right:-70px;bottom:-90px;border-radius:50%;background:var(--card-accent);opacity:.5;scale:.7;transition:scale .6s var(--ease-out)}
.situation:hover{translate:0 -8px;rotate:-.6deg;box-shadow:var(--shadow)}
.situation:hover::after{scale:1.35}
.situation-sky{background:var(--sky);--card-accent:var(--corn-light);--card-ink:var(--corn)}
.situation-honey{background:var(--honey-light);--card-accent:var(--honey);--card-ink:var(--coral-deep)}
.situation-mint{background:var(--mint-light);--card-accent:var(--mint);--card-ink:var(--teal)}
.situation-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:auto;padding-bottom:3rem}
.situation-icon{display:grid;place-items:center;width:60px;height:60px;border-radius:50%;background:var(--white);color:var(--card-ink);font-size:1.6rem;box-shadow:var(--shadow-soft)}
.item-number{font:italic 400 1.25rem var(--serif);color:var(--card-ink)}
.situation h3{font-size:clamp(1.45rem,1.2rem + .6vw,1.8rem);margin-bottom:.8rem}
.situation p{color:var(--muted)}
.chapter-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.6rem 1rem;margin-top:clamp(36px,4vw,56px);font:italic 400 1.35rem var(--serif);font-variation-settings:'SOFT' 100}
.chapter-cta .text-link{font:600 1rem var(--sans)}

/* ---------- About ---------- */
.about{background:var(--linen);margin-inline:clamp(0px,1.6vw,24px);border-radius:clamp(28px,4vw,56px)}
.about-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(40px,6vw,100px);align-items:start}
.about-portrait{position:relative}
@media (min-width:761px){.about-portrait{position:sticky;top:110px}}
.about-frame{position:relative;isolation:isolate}
.about-frame::before{content:'';position:absolute;z-index:-1;inset:-4% 8% 6% -6%;border-radius:var(--r-lg);background:var(--honey);rotate:-4deg}
.about-frame picture{display:block;overflow:hidden;border-radius:var(--r-lg);box-shadow:var(--shadow)}
.about-frame img{width:100%;aspect-ratio:4/3;object-fit:cover}
.about-portrait figcaption{margin-top:1rem}
.about-copy h2{margin-bottom:1.6rem}
.statement{font:400 clamp(1.5rem,1.1rem + 1.25vw,2.2rem)/1.3 var(--serif);font-variation-settings:'SOFT' 100;letter-spacing:-.015em;margin-bottom:2rem}
.statement .word{color:var(--muted);transition:color .45s var(--ease-out)}
.statement .word.is-lit{color:var(--ink)}
.story>p{color:var(--muted);max-width:62ch}
.story>p+p,.story>.role-trail+p{margin-top:1.1rem}
.role-trail{display:flex;flex-wrap:wrap;gap:.5rem;margin-block:1.4rem}
.role-trail li{padding:.4rem .95rem;border:1.5px solid rgba(19,40,58,.22);border-radius:999px;font-size:.85rem;font-weight:600;background:rgba(255,255,255,.5)}
.role-trail .role-now{background:var(--corn);border-color:var(--corn);color:#fff}
.about-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.5rem 2rem;margin-top:2.4rem;padding-top:2rem;border-top:1px solid var(--line)}
.experience{display:flex;align-items:center;gap:1rem}
.experience-number{font:400 clamp(3.6rem,2.8rem + 2.4vw,5rem)/.9 var(--serif);font-variation-settings:'SOFT' 100;letter-spacing:-.04em;color:var(--coral-deep);font-variant-numeric:tabular-nums}
.experience p{font-size:.92rem;line-height:1.5;color:var(--muted)}

/* ---------- Clients (generated) ---------- */
.clients{padding-block:clamp(72px,8vw,120px)}
.clients-inner{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,5vw,80px);align-items:center}
.clients-head h2{font-size:clamp(2rem,1.3rem + 2.2vw,3.2rem)}
.client-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(12px,1.6vw,20px)}
.client-card{border-radius:var(--r-md);background:var(--white);box-shadow:0 1px 0 var(--line);transition:translate .4s var(--ease-spring),box-shadow .4s}
.client-card:last-child:nth-child(odd){grid-column:1/-1}
.client-card-dark{background:var(--ink);color:var(--white)}
.client-card-dark p{color:var(--on-ink-muted)}
.client-card:hover{translate:0 -5px;box-shadow:var(--shadow-soft)}
.client-card>a,.client-card>.client-logo{display:grid;place-items:center;height:clamp(110px,11vw,140px);padding:22px 28px;border-radius:inherit;text-decoration:none}
.client-card img{width:auto;max-width:min(100%,210px);max-height:64px;object-fit:contain}
.client-card-dark>a,.client-card-dark>.client-logo{height:140px}
.client-card-dark img{max-width:min(100%,240px);max-height:96px}
.client-card p{padding:0 20px 18px;font-size:.85rem;color:var(--muted);text-align:center}
.client-name{font:500 1.35rem var(--serif)}

/* ---------- Testimonial ---------- */
.testimonial{position:relative;overflow:hidden;background:var(--corn);color:#fff;padding-block:clamp(90px,11vw,160px);isolation:isolate}
.testimonial-shapes span{position:absolute;z-index:-1;border-radius:50%}
.testimonial-shapes span:first-child{width:clamp(220px,30vw,420px);aspect-ratio:1;left:-8%;top:-30%;background:rgba(255,255,255,.08)}
.testimonial-shapes span:last-child{width:clamp(110px,14vw,210px);aspect-ratio:1;right:-3%;bottom:-12%;background:var(--coral)}
.testimonial-inner{max-width:1040px}
.quote-mark{width:clamp(56px,6vw,80px);fill:var(--honey);margin-bottom:1.6rem}
.testimonial .eyebrow{color:var(--honey-light)}
.testimonial blockquote{margin:0}
.testimonial blockquote p{font:400 clamp(1.75rem,1.15rem + 2.1vw,3.1rem)/1.25 var(--serif);font-variation-settings:'SOFT' 100;letter-spacing:-.02em}
.testimonial mark{color:var(--ink);background:linear-gradient(var(--honey),var(--honey)) left/100% 100% no-repeat;padding:0 .12em;border-radius:.15em;-webkit-box-decoration-break:clone;box-decoration-break:clone}

/* ---------- Journal (generated) ---------- */
.journal-head{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(36px,6vw,90px);align-items:center;margin-bottom:clamp(40px,5vw,64px)}
.journal-head-solo{grid-template-columns:1fr}
.journal-intro p:last-child{margin-top:1.2rem;color:var(--muted);font-size:1.12rem;max-width:36ch}
.snapshot{justify-self:center;width:min(100%,440px);padding:14px 14px 18px;background:var(--white);border-radius:10px;box-shadow:var(--shadow);rotate:3deg;transition:rotate .5s var(--ease-spring),scale .5s var(--ease-spring)}
.snapshot:hover{rotate:0deg;scale:1.02}
.snapshot-frame{overflow:hidden;border-radius:4px}
.snapshot img{width:100%;aspect-ratio:4/3;object-fit:cover}
.snapshot figcaption{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.2rem 1rem;padding:.8rem .3rem 0}
.snapshot figcaption span{font:700 1.5rem/1.1 var(--hand)}
.feed-card{padding:clamp(14px,3vw,36px);border-radius:var(--r-lg);background:var(--white);box-shadow:0 1px 0 var(--line)}
.linkedin-feed{min-height:120px;max-width:100%;overflow-x:clip}
.feed-status,.feed-note{color:var(--muted);font-size:.9rem}
.feed-status[hidden]{display:none}
.linkedin-follow{display:flex;align-items:center;justify-content:space-between;gap:1.2rem 2rem;margin-top:clamp(16px,2vw,24px);padding:clamp(24px,3vw,36px);border-radius:var(--r-lg);background:var(--sky)}
.linkedin-follow h3{font-size:clamp(1.5rem,1.2rem + .8vw,1.9rem);margin-bottom:.35rem}
.linkedin-follow p{color:var(--muted)}
.linkedin-follow .button{flex:none}
.feed-note{margin-top:1rem}
.feed-note a{font-weight:600}

/* ---------- Closing invitation ---------- */
.closing{position:relative;overflow:hidden;isolation:isolate;background:var(--ink);color:#fff;padding-block:clamp(96px,12vw,170px);text-align:center}
.closing-glow{position:absolute;z-index:-1;left:50%;bottom:-60%;width:min(1100px,140vw);aspect-ratio:1;translate:-50% 0;border-radius:50%;background:radial-gradient(closest-side,rgba(240,122,87,.5),rgba(54,86,184,.35) 55%,rgba(54,86,184,0))}
.closing-inner{display:flex;flex-direction:column;align-items:center}
.closing .eyebrow{color:var(--honey)}
.closing h2{font-size:clamp(2.9rem,1.8rem + 4.6vw,6.4rem);color:#fff}
.closing h2 em{color:var(--honey)}
.closing-lede{margin:1.3rem 0 2.4rem;max-width:36ch;font-size:1.2rem;color:var(--on-ink-muted)}
.closing .button-coral:hover{background:#fff;color:var(--ink)}
.closing-direct{display:flex;flex-wrap:wrap;justify-content:center;gap:.8rem 2rem;margin-top:2.2rem}
.closing-direct a{display:inline-flex;align-items:center;gap:.55rem;min-height:44px;color:#fff;font-weight:600;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.3)}
.closing-direct a:hover{border-color:var(--honey)}
.closing-direct .icon{color:var(--honey)}
.closing :focus-visible,.site-footer :focus-visible,.testimonial :focus-visible{outline-color:var(--honey)}

/* ---------- Footer ---------- */
.site-footer{background:var(--ink-deep);color:var(--on-ink-muted);padding-block:clamp(48px,6vw,72px) 32px;font-size:.92rem}
.footer-inner{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2rem 3rem;align-items:start}
.brand-light{width:clamp(170px,16vw,210px)}
.brand-light img{filter:brightness(0) invert(1);opacity:.95}
.footer-motto{margin-top:.8rem;font-size:1.6rem;color:var(--honey)}
.footer-nav,.footer-contact{display:flex;flex-direction:column;gap:.35rem}
.footer-nav a,.footer-contact a{display:inline-flex;align-items:center;min-height:32px;text-decoration:none;width:fit-content}
.footer-nav a:hover,.footer-contact a:hover{color:#fff;text-decoration:underline}
.footer-legal{grid-column:1/-1;padding-top:1.6rem;border-top:1px solid rgba(255,255,255,.12);font-size:.82rem}

/* ---------- Contact page ---------- */
.contact-hero{position:relative;overflow:clip;isolation:isolate;padding-block:clamp(36px,5vw,80px) clamp(64px,7vw,110px)}
.contact-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);grid-template-rows:auto 1fr;gap:0 clamp(36px,6vw,96px);align-items:start}
.contact-intro{grid-column:1;grid-row:1}
.contact-card{grid-column:2;grid-row:1/span 2}
.contact-aside{grid-column:1;grid-row:2}
.contact-intro h1{font-size:clamp(3rem,1.6rem + 4.6vw,5.6rem);margin-bottom:1.6rem}
.contact-description{max-width:38ch;font-size:1.18rem;color:var(--muted)}
.contact-person{display:flex;align-items:flex-end;gap:1.4rem;margin-top:2.4rem}
.contact-arch{position:relative;flex:none;width:clamp(150px,20vw,230px);isolation:isolate}
.contact-arch::before{content:'';position:absolute;z-index:-1;inset:8% -10% -6% 12%;border-radius:999px 999px 24px 24px;background:var(--corn);rotate:6deg}
.contact-arch picture{display:block;overflow:hidden;border-radius:999px 999px 24px 24px;box-shadow:var(--shadow)}
/* Frame Susan from the supplied group photograph without altering the file. */
.contact-arch img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 25%;transform:scale(2);transform-origin:15% 35%}
.contact-person figcaption{display:flex;flex-direction:column;gap:.15rem;padding-bottom:.4rem}
.contact-person strong{font:500 1.3rem/1.2 var(--serif);font-variation-settings:'SOFT' 100}
.contact-person figcaption>span{color:var(--muted);font-size:.95rem}
.contact-person .hand{font-size:1.4rem;color:var(--coral-deep);margin-top:.5rem}
.next-steps{display:grid;gap:.8rem;margin-top:2.6rem;counter-reset:step;max-width:440px}
.next-steps li{display:flex;align-items:center;gap:.9rem;font-weight:600;font-size:.98rem}
.next-steps li::before{counter-increment:step;content:counter(step);display:grid;place-items:center;width:36px;height:36px;flex:none;border-radius:50%;background:var(--honey-light);font:500 1.05rem var(--serif);color:var(--coral-deep)}
.contact-card{position:relative;overflow:hidden;padding:clamp(26px,4vw,48px);border-radius:var(--r-lg);background:var(--white);box-shadow:var(--shadow)}
.contact-card::before{content:'';position:absolute;inset:0 0 auto 0;height:8px;border-radius:var(--r-lg) var(--r-lg) 0 0;background:linear-gradient(90deg,var(--coral),var(--honey),var(--corn-light))}
.contact-card h2{font-size:clamp(2rem,1.5rem + 1.6vw,2.8rem);margin-bottom:.8rem}
.contact-card>p:not(.eyebrow){color:var(--muted)}
.enquiry-form{display:grid;gap:1.25rem;margin-top:1.8rem}
.form-field{display:grid;gap:.45rem}
.form-field label{font-weight:600}
.form-field input,.form-field textarea{width:100%;min-width:0;min-height:52px;padding:.8rem 1rem;border:1.5px solid var(--field);border-radius:var(--r-sm);background:var(--white);color:var(--ink);font-size:1rem;transition:border-color .2s,box-shadow .2s}
.form-field textarea{min-height:150px;resize:vertical}
.form-field input:hover,.form-field textarea:hover{border-color:var(--ink)}
.form-field input:focus-visible,.form-field textarea:focus-visible{outline:none;border-color:var(--corn);box-shadow:0 0 0 4px rgba(54,86,184,.25)}
.form-field [aria-invalid="true"]{border-color:var(--coral-deep);box-shadow:0 0 0 3px rgba(179,64,31,.15)}
.field-error{display:flex;align-items:center;gap:.4rem;font-size:.9rem;font-weight:600;color:var(--coral-deep)}
.field-error[hidden]{display:none}
.field-error::before{content:'!';display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--coral-deep);color:#fff;font-size:.72rem;flex:none}
.form-trap{display:none}
.form-note{font-size:.9rem;color:var(--muted);line-height:1.6}
.form-note a{font-weight:600}
.enquiry-form .button{width:100%}
.button.is-busy{opacity:.85;pointer-events:none}
.contact-alternatives{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;margin-top:2rem;padding-top:1.6rem;border-top:1px solid var(--line)}
.contact-alternatives>p{grid-column:1/-1;font-weight:600}
.contact-alternatives .contact-email{grid-column:1/-1}
.contact-option{display:flex;flex-direction:column;gap:.35rem;min-height:92px;padding:.9rem 1rem;border-radius:var(--r-sm);background:var(--paper);text-decoration:none;transition:background-color .25s,translate .35s var(--ease-spring)}
.contact-option:hover{background:var(--honey-light);translate:0 -3px}
.contact-option .icon{font-size:1.2rem;color:var(--coral-deep)}
.contact-option span{font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.contact-option strong{font-weight:600;font-size:.92rem;overflow-wrap:anywhere}
.privacy-section{padding-block:0 clamp(56px,7vw,96px)}
.privacy-card{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:1.5rem clamp(32px,5vw,80px);padding:clamp(28px,4vw,56px);border-radius:var(--r-lg);background:var(--linen)}
.privacy-card h2{font-size:clamp(1.9rem,1.4rem + 1.4vw,2.6rem)}
.privacy-card .copy p{color:var(--muted);max-width:66ch}
.privacy-card .copy p+p{margin-top:1rem}
.privacy-card a{font-weight:600}

/* ---------- 404 ---------- */
.notfound{min-height:70vh;display:flex;flex-direction:column;justify-content:center}
.notfound .hero-description{margin-top:1.4rem}

/* ---------- Motion (only when the visitor has not asked for less) ---------- */
@media (prefers-reduced-motion:no-preference){
  .hero h1 .line>span{animation:rise 1.05s var(--ease-out) both}
  .hero h1 .line:nth-child(2)>span{animation-delay:.12s}
  .scribble-line{animation:draw 1s .85s var(--ease-out) both}
  .hero-eyebrow,.hero-question,.hero-description,.hero-actions,.hero-credibility,.contact-description,.contact-aside{animation:fadeUp .9s var(--ease-out) both}
  .hero-question{animation-delay:.3s}.hero-description{animation-delay:.4s}.hero-actions{animation-delay:.5s}.hero-credibility{animation-delay:.6s}
  .contact-description{animation-delay:.25s}.contact-aside{animation-delay:.4s}
  .hero-question strong{background-size:0 100%;animation:highlight .9s 1.1s var(--ease-out) forwards}
  .arch,.contact-arch picture{animation:reveal-arch 1.2s .1s var(--ease-out) both}
  .arch img{animation:settle 1.8s .1s var(--ease-out) both}
  .arch-backdrop,.contact-arch::before{animation:swing 1.3s .35s var(--ease-spring) both}
  .hero-portrait::before{animation:pop .9s .55s var(--ease-spring) both}
  /* Brief entrance accents finish within five seconds. Further movement
     follows the visitor's scrolling or pointer, with no endless loops. */
  .chip-years{animation:pop .8s .9s var(--ease-spring) both,bob 2.4s 1.8s ease-in-out}
  .chip-motto{animation:pop .8s 1.05s var(--ease-spring) both,bob 2.4s 2s ease-in-out}
  .pulse::after{animation:ping 2.4s 1.2s ease-out both}
  .contact-card{animation:fadeUp 1s .2s var(--ease-out) both}
  .motion-ok [data-reveal]:not(.is-in){opacity:0}
  .motion-ok [data-reveal].is-in{animation:fadeUp .9s var(--ease-out) both;animation-delay:calc(var(--i,0) * 110ms)}
  .motion-ok .testimonial [data-reveal].is-in mark{background-size:0 100%;animation:highlight 1s .7s var(--ease-out) forwards}
}
@keyframes rise{from{transform:translateY(105%)}to{transform:none}}
@keyframes fadeUp{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@keyframes draw{from{clip-path:inset(-50% 100% -50% 0)}to{clip-path:inset(-50% 0 -50% 0)}}
@keyframes highlight{to{background-size:100% 100%}}
@keyframes reveal-arch{from{clip-path:inset(100% 0 0 0 round 999px 999px 36px 36px)}to{clip-path:inset(0 0 0 0 round 999px 999px 36px 36px)}}
@keyframes settle{from{transform:scale(1.12)}to{transform:none}}
@keyframes swing{from{opacity:0;rotate:-8deg}to{opacity:1}}
@keyframes pop{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}
@keyframes bob{0%,100%{translate:0 0}50%{translate:0 -8px}}
@keyframes ping{0%{transform:scale(1);opacity:.55}80%,100%{transform:scale(2.8);opacity:0}}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
  .hero-glow{transform:none}
  .ribbon-track{transform:none!important}
  .scroll-progress{display:none}
}

/* ---------- Responsive ---------- */
@media (max-width:1080px){
  .chip-years{left:-8%}
  .chip-motto{right:-4%}
  .situation{min-height:300px}
  .footer-inner{grid-template-columns:1fr 1fr}
  .footer-brand{grid-column:1/-1}
}
@media (max-width:900px){
  .hero-grid{grid-template-columns:1fr;gap:64px}
  .hero-portrait{justify-self:center;width:min(72%,400px);margin-right:0}
  .situations{grid-template-columns:1fr}
  .situation{min-height:0}
  .situation-top{padding-bottom:2rem}
  .section-head{grid-template-columns:1fr}
  .clients-inner{grid-template-columns:1fr}
  .contact-grid{grid-template-columns:1fr;gap:48px}
  .contact-intro,.contact-card,.contact-aside{grid-column:1;grid-row:auto}
  .contact-person{margin-top:0}
  .privacy-card{grid-template-columns:1fr}
}
@media (max-width:760px){
  body{font-size:1rem}
  .header-inner{flex-wrap:wrap;min-height:0;padding-block:16px 12px;gap:12px}
  .brand{width:190px}
  .site-nav{width:100%;justify-content:space-between;gap:.5rem;font-size:.92rem}
  .site-nav a:not(.nav-contact){display:inline-flex;align-items:center;min-height:44px}
  .nav-contact{min-height:44px;padding:.45rem 1rem}
  .hero{padding-top:24px}
  .hero h1{font-size:clamp(2.55rem,.9rem + 9vw,3.6rem)}
  .hero-grid{grid-template-columns:1fr;gap:56px}
  .hero-description{font-size:1.06rem}
  .hero-portrait{justify-self:center;width:min(82%,380px);margin-right:0}
  .chip-years{left:-14%;bottom:20%;padding:.6rem .85rem}
  .chip-years strong{font-size:1.7rem}
  .chip-years span{font-size:.75rem}
  .chip-motto{right:-10%;top:6%}
  .chip-motto .hand{font-size:1.2rem}
  .ribbon{rotate:-2.4deg}
  .about{margin-inline:10px;border-radius:28px}
  .about-grid{grid-template-columns:1fr;gap:44px}
  .about-portrait{width:min(88%,420px);justify-self:center}
  .about-footer{flex-direction:column;align-items:flex-start}
  .about-footer .button{width:100%}
  .journal-head{grid-template-columns:1fr;gap:44px}
  .snapshot{width:min(92%,420px)}
  .linkedin-follow{flex-direction:column;align-items:flex-start}
  .linkedin-follow .button{width:100%}
  .closing-direct{flex-direction:column;align-items:center;gap:.4rem}
  .footer-inner{grid-template-columns:1fr 1fr;gap:1.6rem}
  .contact-person{gap:1.1rem}
  .contact-alternatives{grid-template-columns:1fr}
  .contact-option{min-height:0;flex-direction:row;flex-wrap:wrap;align-items:center;column-gap:.6rem}
  .contact-option strong{flex-basis:100%}
}
@media (max-width:380px){
  .site-nav{font-size:.84rem;gap:.25rem}
  .site-nav a{white-space:nowrap}
  .nav-contact{padding-inline:.85rem}
  .nav-contact .icon{display:none}
  .brand{width:170px}
  .hero-actions .button{width:100%}
  .chip-years{left:-10%}
  .chip-motto{right:-6%}
  .footer-inner{grid-template-columns:1fr}
}
@media (min-width:901px){.nowrap-lg{display:block}}
