:root{
  --greige:#ece6dc;--cream:#f8f4ed;--char:#2d2b2a;--char-2:#3d3a38;--lav:#8a7fb0;--lav-d:#6d6294;--lav-l:#e6e1f1;--peach:#f2b79b;--peach-d:#e39a77;--ink:#2d2b2a;--muted:#716b66;--line:#ddd5c8;
}
html{scroll-behavior:smooth}
body{font-family:'Albert Sans',system-ui,sans-serif;font-size:1.05rem;color:var(--ink);background:var(--cream);line-height:1.8;overflow-x:hidden}
h1,h2,h3,h4,h5,.brand{font-family:'Bellefair',Georgia,serif;font-weight:400}
h1,h2,h3,h4,h5{color:var(--char);line-height:1.15;letter-spacing:.005em}
a{color:var(--lav-d);text-decoration:none}
a:hover{color:var(--char)}
img{max-width:100%}

/* Brand: one line, one style */
.brand{display:inline-flex;align-items:center;gap:.6rem;white-space:nowrap;font-size:1.75rem;color:var(--char);line-height:1;letter-spacing:.02em}
.brand::before{content:"";width:1.5rem;height:.9rem;background:linear-gradient(135deg,var(--lav),var(--peach));clip-path:polygon(0 100%,38% 18%,56% 62%,72% 36%,100% 100%);flex:0 0 auto}
.brand:hover{color:var(--char)}
.brand-light,.brand-light:hover{color:#fff}

/* Header */
.site-head{background:rgba(248,244,237,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);padding:.9rem 0;z-index:1030}
.site-head .nav-link{color:var(--char);font-weight:500;padding:.5rem 1.1rem!important;border-radius:40px;transition:.25s}
.site-head .nav-link:hover{background:var(--lav-l)}
.site-head .nav-link.active{background:var(--peach)}
.navbar-toggler{border:1px solid var(--char)!important;border-radius:40px;box-shadow:none!important;padding:.35rem .7rem}

/* Buttons */
.btn{border-radius:40px;font-weight:600;letter-spacing:.04em;padding:.8rem 1.9rem;border:1px solid transparent;transition:.3s}
.btn-char{background:var(--char);color:#fff}
.btn-char:hover{background:var(--char-2);color:#fff;transform:translateY(-2px)}
.btn-peach{background:var(--peach);color:var(--char)}
.btn-peach:hover{background:var(--peach-d);color:var(--char);transform:translateY(-2px)}
.btn-lav{background:var(--lav);color:#fff}
.btn-lav:hover{background:var(--lav-d);color:#fff;transform:translateY(-2px)}
.btn-line{border-color:var(--char);color:var(--char);background:transparent}
.btn-line:hover{background:var(--char);color:#fff}
.btn-line-light{border-color:rgba(255,255,255,.6);color:#fff}
.btn-line-light:hover{background:#fff;color:var(--char)}

/* Hero with arches */
.hero{padding:4.5rem 0 5rem;background:var(--greige);overflow:hidden}
.eyebrow{display:inline-block;color:var(--lav-d);font-weight:600;letter-spacing:.24em;text-transform:uppercase;font-size:.76rem}
.hero h1{font-size:clamp(2.8rem,5.8vw,5rem);margin:1rem 0 1.2rem}
.hero h1 em{font-style:italic;color:var(--lav-d)}
.hero .lead{color:var(--muted);max-width:500px}
.arches{display:flex;align-items:flex-end;justify-content:center;gap:16px}
.arches .a{border-radius:200px 200px 16px 16px;overflow:hidden;box-shadow:0 26px 40px -28px rgba(45,43,42,.6)}
.arches .a img{width:100%;height:100%;object-fit:cover;display:block}
.arches .a1{flex:1.15;height:440px}
.arches .a2{flex:1;height:340px}
.arches .a3{flex:.85;height:260px}
@media(max-width:991px){.arches{margin-top:2.5rem}.arches .a1{height:340px}.arches .a2{height:270px}.arches .a3{height:200px}}
@media(max-width:575px){.arches{gap:10px}.arches .a1{height:260px}.arches .a2{height:210px}.arches .a3{height:160px}}

/* Calm values strip */
.values{background:var(--char);color:#fff}
.values .v{display:flex;gap:1rem;align-items:center;padding:1.5rem 1rem;height:100%}
.values i{font-size:1.9rem;color:var(--peach)}
.values h4{color:#fff;font-size:1.3rem;margin:0}
.values span{font-size:.9rem;color:rgba(255,255,255,.72);line-height:1.4;display:block}
@media(min-width:992px){.values .col-lg-3+.col-lg-3 .v{border-left:1px solid rgba(255,255,255,.18);padding-left:1.8rem}}

/* Sections */
.section{padding:6rem 0}
.section-greige{background:var(--greige)}
.section-char{background:var(--char);color:rgba(255,255,255,.78)}
.section-char h2,.section-char h3,.section-char h4{color:#fff}
.sec-head{text-align:center;max-width:700px;margin:0 auto 3.4rem}
.sec-head h2{font-size:clamp(2.2rem,4vw,3.4rem);margin:.8rem 0 .8rem}
.sec-head p{color:var(--muted);margin:0}
.sec-head .mt{display:block;width:54px;height:20px;margin:1.2rem auto 0;background:var(--lav);clip-path:polygon(0 100%,36% 12%,54% 58%,70% 34%,100% 100%)}
.section-char .sec-head p{color:rgba(255,255,255,.72)}
.muted{color:var(--muted)}

/* Arch service cards */
.arch-card{height:100%;display:flex;flex-direction:column;text-align:center}
.arch-card .pic{border-radius:220px 220px 20px 20px;overflow:hidden;position:relative;margin-bottom:1.4rem;box-shadow:0 24px 36px -28px rgba(45,43,42,.6)}
.arch-card .pic img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block;transition:transform .8s}
.arch-card:hover .pic img{transform:scale(1.07)}
.arch-card .pic::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 0 var(--peach);transition:.4s}
.arch-card:hover .pic::after{box-shadow:inset 0 0 0 6px var(--peach)}
.arch-card h3{font-size:1.6rem;min-height:2.3em;display:flex;align-items:center;justify-content:center}
.arch-card p{color:var(--muted);font-size:1rem;flex:1;padding:0 .6rem}
.arch-card .btn{align-self:center;padding:.65rem 1.6rem}

/* Split */
.split-img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block;border-radius:240px 240px 20px 20px;box-shadow:0 30px 50px -34px rgba(45,43,42,.7)}
.point{display:flex;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line)}
.point:last-of-type{border-bottom:0}
.point i{flex:0 0 46px;height:46px;border-radius:50%;background:var(--lav-l);color:var(--lav-d);display:grid;place-items:center;font-size:1.3rem}
.point h4{font-size:1.35rem;margin:0}
.point p{margin:0;color:var(--muted);font-size:1rem}

/* Blog cards */
.post{height:100%;display:flex;flex-direction:column;background:#fff;border-radius:22px;overflow:hidden;border:1px solid var(--line);transition:.35s}
.post:hover{transform:translateY(-8px);box-shadow:0 30px 44px -32px rgba(45,43,42,.6)}
.post .pic{overflow:hidden}
.post .pic img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block;transition:transform .7s}
.post:hover .pic img{transform:scale(1.06)}
.post .txt{padding:1.5rem 1.7rem 1.7rem;display:flex;flex-direction:column;flex:1}
.post .cat{color:var(--lav-d);font-weight:600;letter-spacing:.18em;text-transform:uppercase;font-size:.7rem;margin-bottom:.5rem}
.post h3{font-size:1.55rem}
.post h3 a{color:var(--char)}
.post h3 a:hover{color:var(--lav-d)}
.post p{color:var(--muted);flex:1}
.more{font-weight:600;color:var(--char);border-bottom:2px solid var(--peach);padding-bottom:1px;align-self:flex-start}
.more:hover{color:var(--lav-d)}

/* Page header */
.page-head{background:var(--greige);text-align:center;padding:4.5rem 0 4rem;border-bottom:1px solid var(--line)}
.page-head h1{font-size:clamp(2.4rem,5.4vw,4.2rem);max-width:820px;margin:.9rem auto 0}
.page-head p{color:var(--muted);max-width:600px;margin:1rem auto 0}
.page-head .mt{display:block;width:54px;height:20px;margin:1.4rem auto 0;background:var(--lav);clip-path:polygon(0 100%,36% 12%,54% 58%,70% 34%,100% 100%)}
.crumbs{font-weight:600;font-size:.76rem;letter-spacing:.22em;text-transform:uppercase;color:var(--lav-d)}
.crumbs a{color:var(--char)}

/* Article */
.article{max-width:780px;margin:0 auto}
.article .cover{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:22px;display:block;margin-bottom:2rem}
.article h2{font-size:2.1rem;margin:2.3rem 0 .6rem}
.article p,.article li{font-size:1.12rem}
.article blockquote{text-align:center;border-top:1px solid var(--peach);border-bottom:1px solid var(--peach);padding:1.5rem 1rem;margin:2.2rem 0;font-family:'Bellefair',serif;font-size:1.75rem;line-height:1.35;color:var(--char)}
.chip{display:inline-block;background:var(--lav-l);color:var(--lav-d);font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:.7rem;padding:.25rem .95rem;border-radius:30px;margin-bottom:.9rem}
.note-box{background:var(--greige);border-radius:22px;padding:2.2rem;text-align:center;margin-top:2.6rem}

/* Contact & forms */
.panel{background:#fff;border:1px solid var(--line);border-radius:26px;padding:2.4rem;height:100%}
.info-card{background:var(--char);color:rgba(255,255,255,.8);border-radius:26px;padding:2.2rem;height:100%}
.info-card h3{color:#fff}
.info{display:flex;gap:1rem;align-items:flex-start;padding:1.1rem 0;border-bottom:1px solid rgba(255,255,255,.18)}
.info:last-of-type{border-bottom:0}
.info i{flex:0 0 44px;height:44px;border-radius:50%;background:var(--peach);color:var(--char);display:grid;place-items:center;font-size:1.2rem}
.info small{display:block;font-weight:600;letter-spacing:.18em;text-transform:uppercase;font-size:.68rem;color:var(--peach)}
.info a{color:#fff;font-weight:500}
.info a:hover{color:var(--peach)}
.map{width:100%;height:340px;border:0;border-radius:26px;margin-top:2.5rem;display:block}
.form-label{font-weight:600;font-size:.9rem;color:var(--char)}
.form-control,.form-select{border:1px solid var(--line);border-radius:14px;padding:.75rem 1rem;background:var(--cream)}
.form-control:focus,.form-select:focus{border-color:var(--lav);box-shadow:0 0 0 .22rem rgba(138,127,176,.2);background:#fff}
.form-check-input:checked{background-color:var(--lav-d);border-color:var(--lav-d)}
.form-success{display:none;background:var(--lav-l);border:1px solid var(--lav);color:var(--char);border-radius:14px;padding:1rem 1.2rem;margin-top:1.2rem;font-weight:500}
.form-success.show{display:block;animation:rise .45s}
@keyframes rise{from{transform:translateY(10px);opacity:0}to{transform:none;opacity:1}}
.arch-form{max-width:700px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:260px 260px 26px 26px;padding:4.5rem 3rem 2.6rem;box-shadow:0 36px 60px -42px rgba(45,43,42,.7)}
.arch-form .ico{display:grid;place-items:center;width:68px;height:68px;border-radius:50%;background:var(--lav-l);color:var(--lav-d);font-size:1.9rem;margin:0 auto 1rem}
.arch-form h2{text-align:center;font-size:2.2rem}
@media(max-width:575px){.arch-form{padding:3.4rem 1.4rem 2rem;border-radius:140px 140px 22px 22px}.panel,.info-card{padding:1.6rem}}

/* Legal */
.legal{max-width:860px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:26px;padding:3rem}
.legal h2{font-size:1.7rem;margin:2rem 0 .5rem;color:var(--lav-d)}
.legal h2:first-of-type{margin-top:1.4rem}
@media(max-width:575px){.legal{padding:1.5rem}}

/* Footer: quiet arch */
.foot{background:var(--char);color:rgba(255,255,255,.75);margin-top:90px;border-radius:50% 50% 0 0/90px 90px 0 0;padding:4.2rem 0 2rem;text-align:center;position:relative}
.foot .peaks{position:absolute;left:50%;top:-1px;transform:translateX(-50%);width:120px;height:34px;background:linear-gradient(135deg,var(--lav),var(--peach));clip-path:polygon(0 100%,36% 12%,54% 58%,70% 34%,100% 100%)}
.foot .say{font-family:'Bellefair',serif;font-size:clamp(1.8rem,3.6vw,2.8rem);color:#fff;max-width:760px;margin:1.2rem auto 1.4rem;line-height:1.25}
.foot .btns{display:flex;flex-wrap:wrap;gap:.7rem;justify-content:center}
.foot .links{display:flex;flex-wrap:wrap;justify-content:center;gap:.3rem 0;margin:2.6rem 0 0;padding-top:2rem;border-top:1px solid rgba(255,255,255,.16)}
.foot .links a{color:rgba(255,255,255,.85);padding:.2rem 1.2rem;position:relative}
.foot .links a+a::before{content:"";position:absolute;left:0;top:50%;width:4px;height:4px;border-radius:50%;background:var(--peach);transform:translateY(-50%)}
.foot .links a:hover{color:var(--peach)}
.foot .links.small{margin-top:.6rem;padding-top:0;border-top:0}
.foot .links.small a{font-size:.92rem;color:rgba(255,255,255,.62)}
.foot .copy{margin-top:1.8rem;font-size:.9rem;color:rgba(255,255,255,.6)}
.foot .copy a{color:var(--peach)}
.foot .copy a:hover{color:#fff}
@media(max-width:575px){.foot{border-radius:50% 50% 0 0/50px 50px 0 0}.foot .links a{padding:.2rem .8rem}}

/* Reveal */
.js .reveal{opacity:0;transform:translateY(26px);transition:opacity .9s ease,transform .9s ease}
.js .reveal.show{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.js .reveal{opacity:1;transform:none}}
@media(max-width:575px){.brand{font-size:1.45rem}.section{padding:4rem 0}.hero{padding:3rem 0 3.5rem}}
