/* Comply with Ease — standalone stylesheet
   Generated from the site's own stylesheet so the look matches the live version exactly. */

:root {
  --font-body: "Inter", sans-serif;
  --background: oklch(0.951 0.009 127);
  --foreground: oklch(0.310 0.096 253.3);
  --primary: var(--foreground);
  --primary-foreground: var(--background);
  --sage: oklch(0.607 0.160 139.3);
  --sage-soft: oklch(0.920 0.035 132.0);
  --muted-foreground: oklch(0.459 0.062 256.5);
  --glass: oklch(1 0 0);
  --warm: oklch(0.607 0.160 139.3);
  --warm-soft: oklch(0.846 0.085 133.1);
  --secondary: color-mix(in oklab, var(--glass) 60%, transparent);
  --accent: color-mix(in oklab, var(--sage) 15%, transparent);
  --border: color-mix(in oklab, var(--foreground) 9%, transparent);
  --photo-shadow: 0 24px 60px -34px color-mix(in oklab, var(--foreground) 35%, transparent);
  --note-shadow: 0 12px 36px -20px color-mix(in oklab, var(--foreground) 30%, transparent);
}

* { box-sizing: border-box; border-color: var(--border); }
html { scroll-behavior: smooth; scroll-padding-top: 32px; }
body { margin: 0; background: var(--background); color: var(--foreground); font-family: var(--font-body); -webkit-font-smoothing: antialiased; }
a { text-decoration: none; color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a:focus-visible { outline: 2px solid var(--sage); outline-offset: 5px; }
::selection { background: var(--warm-soft); color: var(--foreground); }
h1,h2,h3,p { margin: 0; letter-spacing: 0; }
h1,h2,h3 { font-family: "Fraunces", serif; font-weight: 400; }
em { color: var(--sage); font-weight: 400; }

/* Shared button shape (the live site builds these from a shared button component) */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  white-space: nowrap;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 500;
  font-family: var(--font-body);
  cursor: pointer;
  transition: background-color .2s, color .2s, transform .2s, border-color .2s;
}
.btn .icon { width: 16px; height: 16px; flex-shrink: 0; pointer-events: none; }

.page-width { width: min(1152px, 100%); margin-inline: auto; padding-inline: 40px; }
.opening { overflow: hidden; }
.site-header { display:flex; align-items:center; justify-content:space-between; gap:24px; padding-block:29px; }
.brand { display:flex; align-items:center; gap:12px; }
.brand-text { display:flex; flex-direction:column; }
.brand-logo { display:block; height:32px; width:auto; }
.brand-caption { font-size:9px; text-transform:uppercase; letter-spacing:0; color:var(--muted-foreground); margin-top:5px; }
.desktop-nav { display:flex; gap:26px; font-size:13px; }
.desktop-nav a { color:var(--muted-foreground); transition:color .2s; }
.desktop-nav a:hover { color:var(--foreground); }
.consultation-button { border-radius:999px; height:44px; padding:7px 20px 7px 9px; background:var(--foreground); color:var(--background); border:1px solid var(--border); font-size:12px; box-shadow:none; transition:background .2s,transform .2s; }
.consultation-button:hover { background:var(--muted-foreground); transform:translateY(-2px); }
.button-arrow { display:grid; place-content:center; width:26px; height:26px; border-radius:50%; background:var(--warm); color:var(--glass); }
.button-arrow svg { width:14px; height:14px; }
.soft-button { height:44px; border-radius:999px; background:var(--secondary); color:var(--foreground); padding-inline:21px; font-size:12px; border:1px solid var(--border); }
.soft-button:hover { background:var(--glass); }
.hero { display:grid; grid-template-columns:1.05fr .95fr; align-items:center; gap:60px; padding-top:44px; padding-bottom:98px; }
.eyebrow-badge { display:inline-flex; align-items:center; gap:9px; background:var(--secondary); border:1px solid var(--border); border-radius:999px; padding:8px 12px; font-size:10px; text-transform:uppercase; color:var(--muted-foreground); }
.eyebrow-badge span { width:5px; height:5px; border-radius:50%; background:var(--warm); }
h1 { margin-top:26px; font-size:58px; line-height:1.08; max-width:510px; }
h1 em { display:inline; }
.hero-description { margin-top:24px; max-width:415px; font-size:15px; line-height:1.85; color:var(--muted-foreground); }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:29px; }
.hero-footnote { margin-top:20px; color:var(--muted-foreground); font-size:11px; }
.hero-visual { position:relative; }
.photo-frame { padding:10px; background:var(--secondary); border:1px solid var(--border); border-radius:28px; box-shadow:var(--photo-shadow); }
.photo-frame img { display:block; width:100%; height:auto; aspect-ratio:9/10; object-fit:cover; border-radius:20px; }
.personal-note { position:absolute; left:-25px; bottom:-20px; padding:22px 24px; background:color-mix(in oklab,var(--glass) 88%,transparent); border:1px solid var(--border); backdrop-filter:blur(20px); border-radius:16px; box-shadow:var(--note-shadow); }
.note-line { display:block; width:24px; height:2px; background:var(--warm); margin-bottom:12px; }
.personal-note p { font:400 17px/1.4 "Fraunces",serif; }
.personal-note > span:last-child { display:block; margin-top:8px; color:var(--muted-foreground); font-size:10px; }
.services { padding-bottom:86px; }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:32px; }
.eyebrow { font-size:10px; text-transform:uppercase; color:var(--muted-foreground); }
h2 { font-size:36px; line-height:1.16; margin-top:14px; }
.section-summary { font-size:12px; line-height:1.8; color:var(--muted-foreground); }
.service-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.service-card { background:var(--secondary); border:1px solid var(--border); border-radius:24px; padding:28px; }
.service-number { display:grid; place-content:center; background:var(--accent); color:var(--muted-foreground); height:40px; width:40px; border-radius:12px; font:400 17px "Fraunces",serif; margin-bottom:24px; }
h3 { font-size:21px; }
.service-card > p { margin-top:12px; font-size:12px; line-height:1.9; color:var(--muted-foreground); }
.service-tag { border-top:1px solid var(--border); margin-top:24px; padding-top:18px; color:var(--muted-foreground); text-transform:uppercase; font-size:9px; }
.draft-note { font-size:10px; color:var(--muted-foreground); margin-top:17px; }
.approach { padding-bottom:90px; }
.approach-grid { display:grid; grid-template-columns:1fr 1fr; gap:0; }
.approach-grid > img { width:100%; height:440px; object-fit:cover; border-radius:24px; }
.approach-copy { display:flex; flex-direction:column; justify-content:center; padding:24px 0 24px 60px; }
.approach-copy h2 { font-size:40px; }
.approach-copy > p:not(.eyebrow) { color:var(--muted-foreground); font-size:14px; line-height:1.85; margin-top:22px; }
.approach-copy ul { list-style:none; margin:22px 0 0; padding:0; }
.approach-copy li { display:flex; align-items:baseline; gap:12px; color:var(--muted-foreground); font-size:12px; line-height:1.6; margin-top:12px; }
.approach-copy li::before { content:""; flex-shrink:0; width:5px; height:5px; border-radius:50%; background:var(--warm); }
.contact-section { background:var(--foreground); color:var(--background); }
.contact-grid { display:grid; grid-template-columns:1.2fr .8fr; gap:80px; align-items:center; padding-block:70px; }
.contact-grid .eyebrow,.contact-grid em { color:var(--warm-soft); }
.contact-grid h2 { font-size:43px; }
.contact-grid > div > p:last-child { margin-top:20px; font-size:13px; line-height:1.8; color:color-mix(in oklab,var(--background) 75%,transparent); }
.contact-button { justify-content:space-between; height:54px; width:100%; border:1px solid color-mix(in oklab,var(--glass) 20%,transparent); border-radius:12px; background:color-mix(in oklab,var(--glass) 10%,transparent); color:var(--background); font-size:12px; padding-inline:20px; }
.contact-buttons { display:flex; flex-direction:column; gap:12px; }
.contact-detail { margin-top:18px; font-size:12px!important; line-height:1.9; color:color-mix(in oklab,var(--background) 75%,transparent); }
.contact-detail a { color:var(--warm-soft); text-decoration:underline; text-underline-offset:3px; }
.site-footer { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-block:35px; }
.footer-brand { display:flex; flex-direction:column; }
.footer-brand img { display:block; height:20px; width:auto; }
.footer-brand span { font:400 9px var(--font-body); color:var(--muted-foreground); margin-top:5px; }
.site-footer > p,.site-footer > a { color:var(--muted-foreground); font-size:10px; }
.site-footer > a span { margin-left:8px; }
.skip-link { position:fixed; top:-70px; left:20px; z-index:50; background:var(--foreground); color:var(--background); padding:12px 20px; border-radius:8px; }
.skip-link:focus { top:12px; }
@keyframes rise { from { opacity:0; transform:translateY(15px); } to { opacity:1; transform:translateY(0); } }
.rise { animation:rise .8s ease-out both; }
.about { padding-bottom:86px; }
.about-grid { display:grid; grid-template-columns:1.05fr .95fr; gap:60px; align-items:center; }
.about-copy p:not(.eyebrow) { margin-top:18px; max-width:480px; font-size:14px; line-height:1.85; color:var(--muted-foreground); }
.about-copy p:first-of-type { margin-top:22px; }
.about-panel { background:var(--secondary); border:1px solid var(--border); border-radius:24px; padding:32px; }
.about-panel h3 { font-size:13px; text-transform:uppercase; letter-spacing:.08em; color:var(--foreground); }
.about-panel h3:not(:first-child) { margin-top:26px; }
.about-panel ul { margin-top:12px; display:grid; gap:9px; list-style:none; padding:0; }
.about-panel li { font-size:13px; line-height:1.6; color:var(--muted-foreground); padding-left:16px; position:relative; }
.about-panel li::before { content:""; position:absolute; left:0; top:.65em; width:5px; height:5px; border-radius:50%; background:var(--warm); }
.resources { padding-bottom:86px; }
.resource-panel { display:flex; align-items:center; justify-content:space-between; gap:32px; background:var(--secondary); border:1px solid var(--border); border-radius:24px; padding:34px; }
.resource-copy { max-width:520px; }
.resource-copy h3 { font-size:22px; }
.resource-copy p { margin-top:12px; font-size:12px; line-height:1.9; color:var(--muted-foreground); }
.resource-button { flex-shrink:0; }
.service-points { list-style:none; margin:16px 0 0; padding:0; }
.service-points li { display:flex; align-items:baseline; gap:10px; font-size:11px; line-height:1.6; color:var(--muted-foreground); margin-top:9px; }
.service-points li::before { content:""; flex-shrink:0; width:4px; height:4px; border-radius:50%; background:var(--warm); }
.legal { border-top:1px solid var(--border); padding-block:42px; }
.legal-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }
.legal-grid h3 { font-size:13px; }
.legal-grid p { margin-top:10px; font-size:10.5px; line-height:1.9; color:var(--muted-foreground); }
@media (min-width:1440px) { .hero { padding-top:52px; padding-bottom:100px; } }
@media (max-width:1023px) {
  .page-width { padding-inline:30px; }
  .hero { gap:34px; }
  .about-grid { gap:34px; }
  .resource-panel { padding:26px; }
  h1 { font-size:46px; }
  .hero-actions { gap:8px; }
  .hero-actions .consultation-button,.hero-actions .soft-button { font-size:11px; padding-right:14px; }
  .approach-copy { padding-left:36px; }
  .service-card { padding:22px; }
  .contact-grid { gap:40px; }
}
@media (max-width:767px) {
  .page-width { padding-inline:24px; }
  .site-header { padding-block:22px; gap:12px; }
  .brand-logo { height:24px; }
  .brand-caption { font-size:8px; }
  .desktop-nav { display:none; }
  .header-consultation { height:38px; padding-right:13px; font-size:11px; }
  .header-consultation .button-arrow { width:23px; height:23px; }
  .hero { grid-template-columns:1fr; padding-top:30px; padding-bottom:68px; gap:36px; }
  h1 { font-size:43px; line-height:1.1; max-width:440px; }
  .hero-description { font-size:14px; margin-top:20px; }
  .hero-actions { margin-top:24px; }
  .hero-visual { margin-left:10px; }
  .photo-frame img { aspect-ratio:4/3; }
  .personal-note { left:-10px; bottom:-22px; padding:16px 20px; }
  .personal-note p { font-size:15px; }
  .services { padding-bottom:56px; }
  .section-heading { align-items:start; flex-direction:column; gap:18px; }
  h2 { font-size:30px; }
  .section-summary br { display:none; }
  .service-grid { grid-template-columns:1fr; gap:14px; }
  .service-card { padding:25px; }
  .service-number { margin-bottom:18px; }
  .service-card > p { font-size:13px; }
  .approach { padding-bottom:55px; }
  .approach-grid { grid-template-columns:1fr; }
  .approach-grid > img { height:auto; aspect-ratio:4/3; }
  .approach-copy { padding:32px 0 0; }
  .approach-copy h2 { font-size:36px; }
  .about { padding-bottom:56px; }
  .about-grid { grid-template-columns:1fr; gap:28px; }
  .resources { padding-bottom:56px; }
  .resource-panel { flex-direction:column; align-items:flex-start; gap:22px; }
  .service-points li { font-size:12px; }
  .legal { padding-block:34px; }
  .legal-grid { grid-template-columns:1fr; gap:24px; }
  .contact-grid { grid-template-columns:1fr; gap:30px; padding-block:48px; }
  .contact-grid h2 { font-size:36px; }
  .site-footer { flex-wrap:wrap; gap:22px; padding-block:28px; }
  .site-footer > p { width:calc(100% - 180px); text-align:right; }
}
@media (max-width:374px) {
  .page-width { padding-inline:18px; }
  .brand { gap:8px; }
  .brand-logo { height:20px; }
  h1 { font-size:38px; }
  .header-consultation .button-arrow { display:none; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .rise { animation:none; } *,*::before,*::after { transition:none!important; } }
