*{ margin:0; padding:0; box-sizing:border-box; }
:root{
  --ink:#1c1d20; --paper:#ffffff; --paper2:#f4f4f5; --dark:#1c1d20; --blue:#455ce9;
  --sans:'Switzer','Inter','Helvetica Neue',Arial,system-ui,sans-serif;
}
html{ background:var(--paper); scroll-behavior:smooth; }
body{ background:var(--paper); color:var(--ink); font-family:var(--sans); line-height:1.45; overflow-x:hidden; -webkit-font-smoothing:antialiased; }
::selection{ background:var(--blue); color:#fff; }
a{ color:inherit; text-decoration:none; }
img{ display:block; max-width:100%; }
.lbl{ font-size:11.5px; letter-spacing:.13em; text-transform:uppercase; font-weight:600; }
.muted{ color:color-mix(in srgb, currentColor 55%, transparent); }
section{ position:relative; z-index:1; }

.grain{ position:fixed; inset:0; z-index:0; pointer-events:none;
  background-image:
    linear-gradient(rgba(20,21,24,0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(20,21,24,0.05) 1px, transparent 1px);
  background-size:32px 32px, 32px 32px; }

.cur-dot{ position:fixed; top:0; left:0; width:8px; height:8px; background:#fff; mix-blend-mode:difference; border-radius:50%; transform:translate(-50%,-50%); pointer-events:none; z-index:9999; }
@media(hover:none){ .cur-dot{ display:none!important; } }

header{ position:fixed; top:0; left:0; width:100%; z-index:120; padding:26px 4vw; display:flex; align-items:center; justify-content:space-between; mix-blend-mode:difference; color:#fff; }
header .brand{ font-weight:600; font-size:16px; display:flex; align-items:center; }
header .brand .logo{ height:26px; width:auto; display:block; }
header nav{ display:flex; gap:30px; }
header nav a{ font-size:15px; font-weight:500; position:relative; }
header nav a::after{ content:""; position:absolute; left:0; bottom:-4px; width:0; height:1px; background:#fff; transition:width .3s ease; }
header nav a:hover::after{ width:100%; }
@media(max-width:640px){ header nav .hs{ display:none; } }

.rv{ display:inline-block; overflow:hidden; vertical-align:top; padding-bottom:.08em; margin-bottom:-.08em; }
.rv > span{ display:inline-block; }

.phero{ padding:24vh 4vw 10vh; }
.phero .lbl{ display:block; color:var(--blue); margin-bottom:34px; }
.phero h1{ font-size:clamp(2.8rem,9vw,8rem); font-weight:500; line-height:.94; letter-spacing:-.04em; max-width:16ch; }
.phero .psub{ margin-top:34px; max-width:46ch; font-size:clamp(16px,1.4vw,19px); color:color-mix(in srgb,currentColor 62%,transparent); }
.crumb{ margin-top:30px; font-size:13px; font-weight:600; letter-spacing:.04em; }
.crumb a{ color:var(--blue); }

.wrap{ padding:2vh 4vw 12vh; }

.blog-list{ display:grid; grid-template-columns:1fr 1fr; gap:5vw 4vw; border-top:1px solid color-mix(in srgb,currentColor 15%,transparent); padding-top:8vh; }
.pcard{ display:block; }
.pcard .pimg{ overflow:hidden; border-radius:10px; aspect-ratio:16/11; margin-bottom:22px; }
.pcard .pimg img{ width:100%; height:100%; object-fit:cover; transition:transform .6s cubic-bezier(.2,.7,.2,1); }
.pcard:hover .pimg img{ transform:scale(1.04); }
.pcard .pmeta{ font-size:12px; font-weight:600; letter-spacing:.05em; text-transform:uppercase; color:var(--blue); }
.pcard h3{ font-size:clamp(1.5rem,2.6vw,2.2rem); font-weight:500; line-height:1.08; letter-spacing:-.02em; margin:14px 0 12px; }
.pcard p{ font-size:15.5px; line-height:1.55; color:color-mix(in srgb,currentColor 60%,transparent); max-width:46ch; }
.pcard .plink{ display:inline-block; margin-top:16px; font-size:13px; font-weight:600; border-bottom:1px solid color-mix(in srgb,currentColor 30%,transparent); padding-bottom:4px; }
@media(max-width:820px){ .blog-list{ grid-template-columns:1fr; gap:9vh; } }

.article{ max-width:760px; margin:0 auto; }
.article .cover{ overflow:hidden; border-radius:12px; aspect-ratio:16/9; margin-bottom:6vh; }
.article .cover img{ width:100%; height:100%; object-fit:cover; }
.article p{ font-size:clamp(17px,1.35vw,19px); line-height:1.7; margin:0 0 1.4em; color:color-mix(in srgb,currentColor 88%,transparent); }
.article h2{ font-size:clamp(1.5rem,3vw,2.2rem); font-weight:500; letter-spacing:-.02em; line-height:1.12; margin:1.8em 0 .6em; }
.article h3{ font-size:clamp(1.2rem,2vw,1.5rem); font-weight:600; margin:1.6em 0 .5em; }
.article ul{ margin:0 0 1.4em 1.1em; }
.article li{ font-size:clamp(16px,1.3vw,18px); line-height:1.6; margin-bottom:.5em; }
.article blockquote{ border-left:2px solid var(--blue); padding:6px 0 6px 26px; margin:2em 0; font-size:clamp(1.3rem,2.4vw,1.9rem); font-weight:500; line-height:1.25; letter-spacing:-.02em; }
.article .kicker{ font-size:12px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--blue); }

.contact-grid{ display:grid; grid-template-columns:1.05fr 1fr; gap:6vw; border-top:1px solid color-mix(in srgb,currentColor 15%,transparent); padding-top:8vh; }
.form-intro h2{ font-size:clamp(1.7rem,3vw,2.6rem); font-weight:500; letter-spacing:-.03em; line-height:1.12; max-width:16ch; }
.form-intro p{ margin-top:22px; font-size:16px; line-height:1.6; color:color-mix(in srgb,currentColor 62%,transparent); max-width:40ch; }
.form-intro .direct{ margin-top:34px; display:grid; gap:10px; }
.form-intro .direct a{ font-size:16px; font-weight:500; border-bottom:1px solid color-mix(in srgb,currentColor 25%,transparent); padding-bottom:5px; width:fit-content; }
form.cform{ display:grid; gap:20px; }
.field label{ display:block; font-size:12px; font-weight:600; letter-spacing:.05em; text-transform:uppercase; margin-bottom:9px; color:color-mix(in srgb,currentColor 65%,transparent); }
.field input, .field textarea{ width:100%; background:transparent; border:none; border-bottom:1px solid color-mix(in srgb,currentColor 28%,transparent); padding:12px 2px; font-family:var(--sans); font-size:16px; color:inherit; transition:border-color .3s; }
.field input:focus, .field textarea:focus{ outline:none; border-color:var(--blue); }
.field textarea{ resize:vertical; min-height:120px; }
.hp{ position:absolute; left:-9999px; }
button.submit{ justify-self:start; background:var(--ink); color:var(--paper); border:none; border-radius:100px; padding:20px 44px; font-family:var(--sans); font-size:15px; font-weight:600; cursor:pointer; transition:transform .3s, background .3s; }
button.submit:hover{ background:var(--blue); }
.form-note{ font-size:13px; color:color-mix(in srgb,currentColor 55%,transparent); }
.form-msg{ font-size:15px; font-weight:500; }
@media(max-width:820px){ .contact-grid{ grid-template-columns:1fr; gap:8vh; } }

.reviews{ padding:12vh 4vw 6vh; }
.reviews .rhead{ display:flex; justify-content:space-between; align-items:flex-end; gap:20px; flex-wrap:wrap; padding-bottom:34px; }
.reviews .rhead h2{ font-size:clamp(1.8rem,4vw,3.2rem); font-weight:500; letter-spacing:-.03em; }
.reviews .rate{ text-align:right; }
.reviews .rate .big{ font-size:clamp(2rem,4vw,3rem); font-weight:600; }
.reviews .rate .lbl{ color:color-mix(in srgb,currentColor 55%,transparent); }
.rgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.rcard{ border:1px solid color-mix(in srgb,currentColor 14%,transparent); border-radius:14px; padding:26px; background:color-mix(in srgb, var(--paper) 60%, transparent); }
.stars{ color:var(--blue); font-size:15px; letter-spacing:2px; }
.stars .off{ color:color-mix(in srgb,currentColor 25%,transparent); }
.rcard p{ margin:16px 0 20px; font-size:15.5px; line-height:1.55; }
.rcard .who{ font-size:14px; font-weight:600; }
@media(max-width:900px){ .rgrid{ grid-template-columns:1fr 1fr; } }
@media(max-width:600px){ .rgrid{ grid-template-columns:1fr; } }

.leave{ padding:6vh 4vw 4vh; }
.leave .box{ border:1px solid color-mix(in srgb,currentColor 15%,transparent); border-radius:16px; padding:5vh 5vw; }
.leave h3{ font-size:clamp(1.4rem,2.6vw,2rem); font-weight:500; letter-spacing:-.02em; margin-bottom:26px; }
.starpick{ display:inline-flex; gap:6px; font-size:26px; color:color-mix(in srgb,currentColor 25%,transparent); cursor:pointer; }
.starpick span{ transition:color .15s, transform .15s; }
.starpick span:hover{ transform:scale(1.15); }
.starpick span.on{ color:var(--blue); }

footer.site-footer{ position:relative; z-index:1; padding:14vh 4vw 5vh; min-height:82vh; display:flex; flex-direction:column; background:var(--dark); color:#f2f2f2; }
footer.site-footer .menu-btn{ position:absolute; top:5vh; right:4vw; width:60px; height:60px; border-radius:50%; border:1px solid color-mix(in srgb,currentColor 35%,transparent); display:grid; place-items:center; }
footer.site-footer .menu-btn span{ display:block; width:20px; height:1.5px; background:currentColor; margin:3px 0; }
.fc-head{ display:flex; align-items:center; gap:26px; margin-top:6vh; }
.fc-head h2{ font-size:clamp(3rem,11vw,10rem); font-weight:500; line-height:.92; letter-spacing:-.04em; }
.fc-head .fc-arw{ margin-left:auto; font-size:32px; align-self:flex-start; }
.fc-line{ position:relative; margin:8vh 0 7vh; display:flex; align-items:center; }
.fc-line .line{ flex:1; height:1px; background:color-mix(in srgb,currentColor 22%,transparent); }
.blue-circle{ position:absolute; right:6vw; top:50%; transform:translateY(-50%); width:clamp(150px,15vw,210px); height:clamp(150px,15vw,210px); border-radius:50%; background:var(--blue); color:#fff; display:grid; place-items:center; font-size:17px; font-weight:500; }
.fc-pills{ display:flex; gap:14px; flex-wrap:wrap; }
.fc-pills .pill{ border:1px solid color-mix(in srgb,currentColor 30%,transparent); border-radius:100px; padding:18px 34px; font-size:15px; font-weight:500; transition:background .35s,color .35s,border-color .35s; }
a.pill:hover{ background:#fff; color:var(--dark); border-color:#fff; }
.final-foot{ margin-top:auto; padding-top:6vh; display:flex; justify-content:space-between; align-items:flex-end; gap:30px; flex-wrap:wrap; }
.final-foot .fg{ display:flex; gap:8vw; }
.final-foot .col .lbl{ display:block; margin-bottom:12px; color:color-mix(in srgb,currentColor 55%,transparent); }
.final-foot .col .v{ font-size:16px; font-weight:500; }
.final-foot .socials a{ font-size:16px; font-weight:500; margin-left:22px; }
.final-foot .socials a:first-of-type{ margin-left:0; }
.final-foot .socials a:hover{ color:var(--blue); }
@media(max-width:640px){ .fc-head .fc-arw{ display:none; } .blue-circle{ position:static; transform:none; margin:20px auto 0; } .fc-line{ flex-wrap:wrap; } .final-foot .fg{ gap:12vw; } }
