*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

        :root {
            --green:      #105c3e;
            --green-mid:  #0d7a51;
            --green-pale: #e8f5ef;
            --gold:       #c89520;
            --gold-light: #f0b429;
            --ink:        #141414;
            --ink-60:     rgba(20,20,20,0.60);
            --ink-30:     rgba(20,20,20,0.30);
            --white:      #ffffff;
            --off-white:  #f8f7f4;
            --rule:       rgba(20,20,20,0.10);
            --display:    'Cormorant Garamond', Georgia, serif;
            --body:       'DM Sans', system-ui, sans-serif;
            --mono:       'DM Mono', monospace;
            --max:        1200px;
            --gutter:     clamp(20px, 4vw, 60px);
            --header-h:   68px;
        }

        html { scroll-behavior: smooth; }
        body { font-family: var(--body); color: var(--ink); background: var(--white); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
        a { color: inherit; text-decoration: none; }

        .label { display:inline-flex; align-items:center; gap:8px; font-family:var(--mono); font-size:11px; font-weight:500; letter-spacing:.12em; text-transform:uppercase; color:var(--gold); }
        .label::before { content:''; display:block; width:20px; height:1.5px; background:var(--gold); flex-shrink:0; }

        .btn-primary { display:inline-flex; align-items:center; gap:10px; padding:13px 26px; background:var(--green); color:var(--white); font-family:var(--body); font-size:14px; font-weight:600; border-radius:2px; transition:background .2s,transform .15s; }
        .btn-primary:hover { background:var(--green-mid); transform:translateY(-1px); }
        .btn-primary::after { content:'→'; font-size:16px; }

        .btn-ghost { display:inline-flex; align-items:center; gap:10px; padding:12px 26px; border:1.5px solid rgba(20,20,20,0.35); color:rgba(20,20,20,0.80); font-family:var(--body); font-size:14px; font-weight:600; border-radius:2px; transition:border-color .2s,color .2s,transform .15s; }
        .btn-ghost:hover { border-color:var(--green); color:var(--green); transform:translateY(-1px); }

        /* ── HEADER ── */
        .site-header { position:fixed; top:0; left:0; right:0; z-index:100; display:flex; align-items:center; justify-content:space-between; padding:0 var(--gutter); height:var(--header-h); background:rgba(255,255,255,0.96); backdrop-filter:blur(12px); border-bottom:1px solid var(--rule); }
        .site-header .logo { font-family:var(--display); font-size:22px; font-weight:700; color:var(--green); letter-spacing:-.02em; display:flex; align-items:center; gap:10px; text-decoration:none; }
        .site-header .logo span { color:var(--gold); }
        .site-header .logo img { height:36px; width:auto; }
        .site-nav { display:flex; align-items:center; gap:32px; list-style:none; }
        .site-nav a { font-size:13.5px; font-weight:500; color:var(--ink-60); transition:color .15s; }
        .site-nav a:hover, .site-nav a.active { color:var(--green); }
        .site-nav .nav-cta { padding:9px 20px; background:var(--green); color:var(--white) !important; border-radius:2px; font-weight:600; }
        .site-nav .nav-cta:hover { background:var(--green-mid); }

        .hamburger { display:none; flex-direction:column; justify-content:center; align-items:center; gap:5px; width:42px; height:42px; background:none; border:1.5px solid var(--rule); border-radius:6px; cursor:pointer; padding:0; z-index:300; transition:border-color .18s; }
        .hamburger:hover { border-color:var(--green); }
        .hamburger .bar { display:block; width:20px; height:1.8px; background:var(--ink); border-radius:2px; transition:transform .28s ease,opacity .18s ease; transform-origin:center; }
        .hamburger.open .bar:nth-child(1) { transform:translateY(6.8px) rotate(45deg); }
        .hamburger.open .bar:nth-child(2) { opacity:0; transform:scaleX(0); }
        .hamburger.open .bar:nth-child(3) { transform:translateY(-6.8px) rotate(-45deg); }

        .mobile-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.45); z-index:149; opacity:0; transition:opacity .28s ease; }
        .mobile-overlay.visible { opacity:1; }
        .mobile-drawer { position:fixed; top:0; right:0; bottom:0; width:min(320px,88vw); background:var(--white); z-index:150; transform:translateX(100%); transition:transform .32s cubic-bezier(.4,0,.2,1); display:flex; flex-direction:column; overflow-y:auto; box-shadow:-8px 0 40px rgba(0,0,0,0.12); }
        .mobile-drawer.open { transform:translateX(0); }
        .drawer-head { display:flex; align-items:center; justify-content:flex-end; padding:0 16px; height:52px; border-bottom:1px solid var(--rule); flex-shrink:0; }
        .drawer-close { width:36px; height:36px; background:none; border:1.5px solid var(--rule); border-radius:50%; cursor:pointer; display:flex; align-items:center; justify-content:center; color:var(--ink-60); font-size:18px; transition:border-color .15s,color .15s; }
        .drawer-close:hover { border-color:var(--green); color:var(--green); }
        .drawer-nav { list-style:none; padding:0; flex:1; }
        .drawer-nav li a { display:flex; align-items:center; justify-content:space-between; padding:15px 24px; font-size:15.5px; font-weight:500; color:var(--ink); border-bottom:1px solid var(--rule); transition:background .15s,color .15s,padding-left .15s; }
        .drawer-nav li:last-child a { border-bottom:none; }
        .drawer-nav li a:hover { background:var(--green-pale); color:var(--green); padding-left:30px; }
        .drawer-nav li a::after { content:'→'; font-size:14px; color:var(--ink-30); }
        .drawer-nav li a:hover::after { color:var(--green); }
        .drawer-cta { padding:20px 24px; border-top:1px solid var(--rule); flex-shrink:0; }
        .drawer-cta a { display:block; text-align:center; padding:14px; background:var(--green); color:var(--white); font-size:15px; font-weight:700; border-radius:4px; transition:background .18s; }
        .drawer-cta a:hover { background:var(--green-mid); }

        @media (max-width:1024px) { .hamburger { display:flex; } }
        @media (max-width:600px)  { .site-nav  { display:none; } }


        /* ── FOOTER ── */
        .pa-footer { background:var(--ink); color:rgba(255,255,255,0.55); padding:60px 0 40px; }
        .pa-footer-wrap { max-width:var(--max); margin:0 auto; padding-left:var(--gutter); padding-right:var(--gutter); }
        .pa-footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:48px; padding-bottom:48px; border-bottom:1px solid rgba(255,255,255,0.08); margin-bottom:32px; }
        .pa-footer-brand .pa-footer-logo { font-family:var(--display); font-size:24px; font-weight:700; color:var(--white); margin-bottom:14px; display:flex; align-items:center; gap:10px; text-decoration:none; }
        .pa-footer-brand .pa-footer-logo span { color:var(--gold-light); }
        .pa-footer-brand .pa-footer-logo img { height:34px; width:auto; display:block; }
        .pa-footer-brand p { font-family:var(--body); font-size:13.5px; line-height:1.75; max-width:280px; color:rgba(255,255,255,0.50); }
        .pa-footer-col h5 { font-family:var(--body); font-size:12px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--white); margin-bottom:16px; }
        .pa-footer-col ul { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px; }
        .pa-footer-col ul li a { font-family:var(--body); font-size:13.5px; color:rgba(255,255,255,0.50); text-decoration:none; transition:color .15s; }
        .pa-footer-col ul li a:hover { color:var(--white); }
        .pa-footer-bottom { display:flex; align-items:center; justify-content:space-between; font-family:var(--body); font-size:12.5px; color:rgba(255,255,255,0.35); }
        .pa-footer-socials { display:flex; gap:16px; }
        .pa-footer-socials a { color:rgba(255,255,255,0.40); font-size:14px; font-weight:600; text-decoration:none; transition:color .15s; }
        .pa-footer-socials a:hover { color:var(--white); }


/* Services page: restrained editorial layout. Components are prefixed to avoid
   clashes with other page styles and the shared header/footer. */
.pa-svc-page {
    background: #fff;
    color: #17251d;
    font-family: var(--body);
    padding-top: 74px;
}
.pa-svc-page, .pa-svc-page * { box-sizing: border-box; }
.pa-svc-wrap { width: min(1200px, calc(100% - 2 * clamp(22px, 5vw, 64px))); margin-inline: auto; }
.pa-svc-eyebrow {
    display: inline-block;
    margin-bottom: 18px;
    font: 500 11px/1.5 var(--mono);
    letter-spacing: .11em;
    text-transform: uppercase;
    color: #856013;
}
.pa-svc-eyebrow-light { color: #e4bd6f; }
.pa-svc-hero {
    background: #105c3e;
    color: white;
    padding: clamp(70px, 9vw, 114px) 0 clamp(66px, 8vw, 100px);
}
.pa-svc-hero h1 {
    max-width: 1000px;
    font: 600 clamp(48px, 5.8vw, 84px)/1.03 var(--display);
    letter-spacing: -.025em;
    color: #fff;
    margin: 0 0 28px;
}
.pa-svc-hero h1 em { color: #f0cb86; font-weight: 500; }
.pa-svc-hero-lead {
    max-width: 690px;
    font-size: clamp(16px, 1.55vw, 19px);
    line-height: 1.75;
    color: rgba(255,255,255,.82);
    margin: 0 0 36px;
}
.pa-svc-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 32px;
    min-height: 49px;
    padding: 13px 20px;
    border: 1px solid transparent;
    border-radius: 3px;
    font: 600 13px/1.3 var(--body);
    text-decoration: none;
    transition: background .2s, transform .2s, border-color .2s;
}
.pa-svc-button span { font-size: 17px; line-height: 1; }
.pa-svc-button:hover { transform: translateY(-2px); }
.pa-svc-button-light { color: #105c3e; background: #fff; }
.pa-svc-button-light:hover { background: #f2eee4; }
.pa-svc-button-dark { color: #fff; background: #105c3e; }
.pa-svc-button-dark:hover { background: #0d714a; }

.pa-svc-offerings { padding: clamp(70px, 8vw, 112px) 0 50px; }
.pa-svc-section-head {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 38px;
    margin-bottom: 50px;
}
.pa-svc-section-head h2, .pa-svc-method h2, .pa-svc-contact h2 {
    font: 600 clamp(36px, 4vw, 55px)/1.12 var(--display);
    letter-spacing: -.018em;
    color: #193a2d;
}
.pa-svc-section-head .pa-svc-eyebrow, .pa-svc-method .pa-svc-eyebrow { margin-bottom: 12px; }
.pa-svc-section-head > p {
    max-width: 370px;
    color: #5d6860;
    font-size: 14px;
    line-height: 1.8;
    padding-bottom: 6px;
}
.pa-svc-service {
    display: grid;
    grid-template-columns: 55px minmax(0, 1.3fr) minmax(220px, .78fr);
    align-items: start;
    gap: clamp(20px, 4vw, 60px);
    padding: 48px 0 52px;
    border-top: 1px solid #dfe6df;
    scroll-margin-top: 100px;
}
.pa-svc-service:last-child { border-bottom: 1px solid #dfe6df; }
.pa-svc-number, .pa-svc-step-number {
    font: 500 12px/1.5 var(--mono);
    color: #9a7b36;
    letter-spacing: .035em;
}
.pa-svc-number { padding-top: 12px; }
.pa-svc-description h3 {
    max-width: 500px;
    font: 600 clamp(30px, 3.2vw, 43px)/1.12 var(--display);
    color: #163f2e;
    letter-spacing: -.014em;
    margin: 0 0 19px;
}
.pa-svc-description p {
    max-width: 535px;
    color: #505b53;
    font: 400 15px/1.9 var(--body);
    margin: 0;
}
.pa-svc-scope { padding-top: 10px; }
.pa-svc-scope h4 {
    font: 600 11px/1.4 var(--mono);
    color: #49755d;
    text-transform: uppercase;
    letter-spacing: .08em;
    margin: 0 0 17px;
}
.pa-svc-scope ul { list-style: none; padding: 0; margin: 0; }
.pa-svc-scope li {
    color: #36463b;
    font: 400 14px/1.55 var(--body);
    padding: 0 0 11px 17px;
    position: relative;
}
.pa-svc-scope li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 9px;
    width: 5px;
    height: 5px;
    background: #c89520;
    border-radius: 50%;
}

.pa-svc-method {
    background: #f8f7f4;
    padding: clamp(68px, 8vw, 100px) 0;
}
.pa-svc-method-head { margin-bottom: 45px; }
.pa-svc-method-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: clamp(22px, 3.6vw, 50px);
}
.pa-svc-method-step { border-top: 1px solid #c9d1c9; padding-top: 25px; }
.pa-svc-method-step h3 {
    font: 600 clamp(24px, 2.5vw, 31px)/1.15 var(--display);
    margin: 18px 0 10px;
    color: #1e4332;
}
.pa-svc-method-step p {
    max-width: 310px;
    color: #606961;
    font-size: 14px;
    line-height: 1.8;
    margin: 0;
}
.pa-svc-contact { padding: clamp(70px, 8vw, 105px) 0; }
.pa-svc-contact-inner { display:flex; justify-content:space-between; align-items:center; gap:50px; }
.pa-svc-contact h2 { margin-bottom: 14px; }
.pa-svc-contact p { max-width: 650px; font-size: 15px; line-height: 1.8; color: #5a645d; }
.pa-svc-contact .pa-svc-button { flex-shrink: 0; }

@media (max-width: 900px) {
    .pa-svc-section-head { align-items: start; flex-direction: column; gap: 18px; }
    .pa-svc-service { grid-template-columns: 40px minmax(0, 1fr); gap: 22px; }
    .pa-svc-scope { grid-column: 2; padding-top: 0; }
    .pa-svc-scope ul { display: grid; grid-template-columns: 1fr 1fr; gap: 0 26px; }
    .pa-svc-contact-inner { align-items: flex-start; flex-direction: column; gap: 25px; }
}
@media (max-width: 600px) {
    .pa-svc-page { padding-top: 68px; }
    .pa-svc-hero h1 { font-size: clamp(43px, 9.8vw, 56px); }
    .pa-svc-hero h1 br { display: none; }
    .pa-svc-hero { padding-top: 67px; padding-bottom: 70px; }
    .pa-svc-hero-lead { margin-bottom: 28px; line-height: 1.7; }
    .pa-svc-offerings { padding: 64px 0 55px; }
    .pa-svc-section-head { margin-bottom: 35px; }
    .pa-svc-service { grid-template-columns: 1fr; gap: 12px; padding: 34px 0 37px; }
    .pa-svc-number { padding-top: 0; }
    .pa-svc-scope { grid-column: 1; margin-top: 12px; }
    .pa-svc-scope ul { grid-template-columns: 1fr; }
    .pa-svc-method-grid { grid-template-columns: 1fr; gap: 30px; }
    .pa-svc-method-head { margin-bottom: 28px; }
    .pa-svc-method-step { padding-top: 19px; }
    .pa-svc-contact { padding: 70px 0; }
    .pa-svc-contact-inner { gap: 24px; }
    .pa-svc-button { width: 100%; justify-content: space-between; }
}
@media (prefers-reduced-motion: reduce) {
    .pa-svc-button { transition: none; }
    .pa-svc-button:hover { transform: none; }
}
