@font-face{
  font-family:"Manrope";
  src:url("/assets/fonts/Manrope-VariableFont_wght.ttf") format("truetype");
  font-style:normal;
  font-weight:200 800;
  font-display:swap;
}

:root{
  --font-family:"Manrope",Arial,Helvetica,sans-serif;
  --sans:var(--font-family);
  --serif:var(--font-family);
  --type-display:clamp(3rem,5vw,4.5rem);
  --type-h1:clamp(2.4rem,4vw,3.75rem);
  --type-h2:clamp(2rem,3vw,3rem);
  --type-h3:clamp(1.45rem,2vw,1.875rem);
  --type-h4:1.25rem;
  --type-h5:1.0625rem;
  --type-h6:.875rem;
  --type-body-lg:1.0625rem;
  --type-body:1rem;
  --type-small:.875rem;
  --type-xs:.75rem;
  --type-micro:.6875rem;
}

html,body,button,input,select,textarea,optgroup{
  font-family:var(--font-family);
}
body{
  font-size:var(--type-body);
  font-weight:400;
  line-height:1.72;
  letter-spacing:-.005em;
  font-optical-sizing:auto;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}
svg text{font-family:var(--font-family)!important}

h1,h2,h3,h4,h5,h6,blockquote,cite,address{
  font-family:var(--font-family);
}
h1,h2,h3,h4,h5,h6{
  font-weight:700;
  text-wrap:balance;
}
h1{font-size:var(--type-h1);line-height:1.08;letter-spacing:-.045em}
h2{font-size:var(--type-h2);line-height:1.12;letter-spacing:-.038em}
h3{font-size:var(--type-h3);line-height:1.2;letter-spacing:-.028em}
h4{font-size:var(--type-h4);line-height:1.3;letter-spacing:-.018em}
h5{font-size:var(--type-h5);line-height:1.35;letter-spacing:-.012em}
h6{font-size:var(--type-h6);line-height:1.4;letter-spacing:.02em}
p,li,td,th{font-weight:400}
strong,b{font-weight:700}
em{font-family:inherit;font-weight:700}

/* Global microcopy and controls */
.topbar{font-size:var(--type-micro);font-weight:600;line-height:1.4;letter-spacing:.015em}
.brand-sub{font-size:.6rem;font-weight:650;line-height:1.75;letter-spacing:.16em}
.nav,.nav-mega-trigger{font-size:var(--type-small);font-weight:650;line-height:1.35;letter-spacing:-.01em}
.button,.nav .nav-cta,.text-link,.menu-toggle{
  font-size:var(--type-small);
  font-weight:700;
  line-height:1.3;
  letter-spacing:0;
}
.eyebrow,.mega-eyebrow,.index,.service-number{
  font-size:var(--type-micro);
  font-weight:750;
  line-height:1.55;
  letter-spacing:.14em;
}

/* Marketing hierarchy */
.hero h1,.hero h2{
  font-size:var(--type-display);
  font-weight:700;
  line-height:1.07;
  letter-spacing:-.05em;
}
.hero-intro,.mast-copy .lede{
  font-size:var(--type-body-lg);
  font-weight:400;
  line-height:1.72;
}
.hero-note{font-size:var(--type-xs);font-weight:600;line-height:1.5;letter-spacing:.025em}
.page-mast h1,.full-mast .mast-copy h1,.visual-mast .mast-copy h1{
  font-size:var(--type-h1);
  font-weight:700;
  line-height:1.08;
  letter-spacing:-.045em;
}
.section-head h2,.intro-section h2,.owner-copy h2,.care-inner h2,
.contact-section-heading h2,.contact-form-intro h2,.footer-opening h2{
  font-size:var(--type-h2);
  font-weight:700;
  line-height:1.12;
  letter-spacing:-.038em;
}
.krabi-content h2{font-size:var(--type-h1);font-weight:700;line-height:1.08}
.feature-copy h3{
  font-size:1.75rem;
  font-weight:650;
  line-height:1.22;
  letter-spacing:-.025em;
}
.service-card h3{
  font-size:1.5625rem;
  font-weight:650;
  line-height:1.25;
  letter-spacing:-.022em;
}
.steps h3,.contact-channel h3,.work-card h3,.sidebar-card h3{
  font-size:var(--type-h3);
  font-weight:700;
  line-height:1.22;
  letter-spacing:-.025em;
}
.directory-card h2,.card-copy h2{font-size:var(--type-h3);font-weight:700;line-height:1.2}
.intro-copy,.owner-copy>p:not(.eyebrow),.feature-copy>p,
.care-inner>div>p:not(.eyebrow),.office-story p:not(.eyebrow),
.contact-section-heading>p:last-child{
  font-size:var(--type-body);
  line-height:1.75;
}
.line-list,.credentials,.steps p,.service-card p,.directory-card p,.card-copy p{
  font-size:var(--type-small);
  line-height:1.7;
}
.quote-grid blockquote{font-family:var(--font-family);font-size:1.1875rem;font-weight:600;line-height:1.65;letter-spacing:-.012em}
.quote-grid figcaption strong{font-size:.9375rem;font-weight:700}
.quote-grid figcaption small,.review-source{font-size:var(--type-xs);line-height:1.6}

/* Mega menu */
.mega-intro h2{font-size:1.625rem;font-weight:700;line-height:1.12;letter-spacing:-.035em}
.mega-intro>p:not(.mega-eyebrow){font-size:var(--type-xs);font-weight:400;line-height:1.65}
.mega-overview{font-size:var(--type-xs);font-weight:700}
.mega-service-link strong{font-size:.8125rem;font-weight:700;line-height:1.4}
.mega-service-description{font-size:.6875rem;font-weight:450;line-height:1.5}
.mega-category-title{font-size:.8125rem;font-weight:750;line-height:1.4}
.mega-category-links a{font-size:.7rem;font-weight:500;line-height:1.5}

/* Long-form legal content */
.article{
  font-family:var(--font-family);
  font-size:var(--type-body-lg);
  font-weight:400;
  line-height:1.82;
  letter-spacing:0;
}
.article strong,.article b{font-weight:650}
.article h2{
  font-size:clamp(1.5rem,1.7vw,1.875rem);
  font-weight:700;
  line-height:1.3;
  letter-spacing:-.025em;
}
.article h2:before{font-size:1.375rem;font-weight:700}
.article h3,.article h4,.article h5{
  font-size:1.25rem;
  font-weight:700;
  line-height:1.35;
  letter-spacing:-.02em;
}
.article li{line-height:1.72}
.article table{font-size:.9375rem;line-height:1.6}
.article th{font-weight:700}
.article .button{font-size:.8125rem;font-weight:700}
.article-sidebar .sidebar-card h3{font-size:1.4375rem;font-weight:700;line-height:1.22}
.article-sidebar .sidebar-card p{font-size:var(--type-xs);line-height:1.65}
.article-sidebar .sidebar-card>a:not(.button),.article-toc a{font-size:.7rem;line-height:1.55}
.article-sidebar .sidebar-card .eyebrow,.article-toc .eyebrow{font-size:.6rem}

/* Contact forms and detail pages */
.contact-channel h3{font-size:1.4375rem;font-weight:700}
.contact-channel p,.contact-refined .contact-note p:not(.eyebrow){font-size:var(--type-small);line-height:1.8}
.channel-primary{font-size:var(--type-body);font-weight:700}
.channel-link{font-size:.8125rem;font-weight:700}
.channel-detail{font-size:var(--type-xs)}
.form-field>span{font-size:var(--type-xs);font-weight:700}
.form-field input,.form-field select,.form-field textarea{font-size:.9375rem;font-weight:450;line-height:1.5}
.form-field small,.form-submit-row p{font-size:.7rem;line-height:1.6}

/* Footer */
.footer-opening h2{font-weight:700}
.footer-location strong{font-size:var(--type-body-lg);font-weight:650;line-height:1.55}
.footer-location p{font-size:var(--type-xs);line-height:1.7}
.footer-refined .footer-identity p,.footer-refined .footer-grid a{font-size:.8125rem;line-height:1.85}
.footer-refined .footer-grid h4{font-size:var(--type-xs);font-weight:750;line-height:1.4;letter-spacing:.08em}
.footer-refined .footer-bottom{font-size:.6875rem;line-height:1.6}

/* Responsive type rhythm */
@media(max-width:1100px){
  .feature-copy h3{font-size:1.625rem}
  .service-card h3{font-size:1.4375rem}
}
@media(max-width:900px){
  :root{
    --type-display:clamp(2.55rem,7vw,3.4rem);
    --type-h1:clamp(2.25rem,6vw,3rem);
    --type-h2:clamp(1.9rem,5vw,2.55rem);
    --type-h3:clamp(1.4rem,3.5vw,1.75rem);
  }
  .nav,.nav-mega-trigger{font-size:.875rem}
  .article{font-size:1rem;line-height:1.8}
}
@media(max-width:600px){
  :root{
    --type-display:clamp(2.15rem,9vw,2.55rem);
    --type-h1:clamp(2rem,8vw,2.4rem);
    --type-h2:clamp(1.75rem,7vw,2.1rem);
    --type-h3:clamp(1.3rem,5vw,1.55rem);
    --type-h4:1.125rem;
  }
  body{font-size:1rem;line-height:1.72}
  .topbar{font-size:.6rem}
  .brand-sub{font-size:.5rem}
  .button,.nav .nav-cta,.text-link,.menu-toggle{font-size:.8125rem}
  .hero-intro,.mast-copy .lede{font-size:1rem}
  .hero-note{font-size:.6875rem}
  .eyebrow,.mega-eyebrow,.index,.service-number{font-size:.625rem;letter-spacing:.13em}
  .article{font-size:1rem;line-height:1.8}
  .article h2{font-size:1.5rem;line-height:1.3}
  .feature-copy h3{font-size:1.5rem}
  .service-card h3{font-size:1.3125rem;line-height:1.28}
  .article h3,.article h4,.article h5{font-size:1.2rem}
  .footer-opening h2{font-size:2rem}
}
