.container { width: min(100% - (var(--container-gutter) * 2), var(--container-width)); margin-inline: auto; }
.section { padding-block: clamp(5rem, 9vw, 8rem); }
.section--soft { background: var(--color-sage-pale); }

.site-header { position: sticky; z-index: 1000; top: 0; height: var(--header-height); background: rgba(250,248,242,.88); border-bottom: 1px solid transparent; backdrop-filter: blur(18px); transition: height var(--transition-base), box-shadow var(--transition-base), border-color var(--transition-base); }
.site-header.is-scrolled { height: 4.75rem; border-color: var(--color-line); box-shadow: 0 8px 30px rgba(28,54,44,.06); }
.site-header__inner { display: flex; height: 100%; align-items: center; justify-content: space-between; }
.brand { display: inline-flex; align-items: center; gap: .8rem; }
.brand-logo { display: block; width: 6rem; height: 6rem; object-fit: contain; filter: drop-shadow(0 6px 10px rgba(28,54,44,.2)); flex-shrink: 0; }
.brand__text { display: grid; line-height: 1.2; }
.brand__text strong { color: var(--color-ink); font-family: var(--font-display); font-size: 1.22rem; letter-spacing: -.02em; }
.brand__text small { margin-top: .18rem; color: var(--color-muted); font-size: .63rem; letter-spacing: .02em; }
.site-nav { display: flex; align-items: center; gap: 2rem; }
.site-nav__links { display: flex; align-items: center; gap: 1.7rem; }
.site-nav__link { position: relative; color: var(--color-text); font-size: .78rem; font-weight: 600; }
.site-nav__link::after { position: absolute; right: 0; bottom: -.45rem; left: 0; height: 1px; background: var(--color-forest); content: ""; transform: scaleX(0); transition: transform var(--transition-fast); }
.site-nav__link:hover, .site-nav__link[aria-current="page"] { color: var(--color-forest-dark); }
.site-nav__link:hover::after, .site-nav__link[aria-current="page"]::after { transform: scaleX(1); }
.menu-toggle { display: none; width: 2.8rem; height: 2.8rem; padding: .65rem; background: transparent; border-radius: 50%; }
.menu-toggle span { display: block; width: 100%; height: 1.5px; margin-block: .3rem; background: var(--color-forest-dark); transition: transform var(--transition-fast), opacity var(--transition-fast); }
.menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(.48rem) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-.48rem) rotate(-45deg); }

.hero { position: relative; min-height: calc(100vh - var(--header-height)); overflow: hidden; }
.hero--home { display: grid; align-items: center; padding-block: clamp(4rem, 7vw, 7rem); background: linear-gradient(130deg, var(--color-cream) 0%, #f7f3e9 52%, var(--color-sage-light) 100%); }
.hero__grid { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(22rem, .88fr); align-items: center; gap: clamp(3rem, 8vw, 7rem); }
.hero__content { position: relative; z-index: 2; }
.hero__content .eyebrow { margin-bottom: 1.35rem; }
.hero__content h1 { max-width: 49rem; }
.hero__content h1 em, .page-hero h1 em { color: var(--color-forest-soft); font-weight: 500; }
.hero__lead { max-width: 39rem; margin-top: 1.5rem; font-size: clamp(1rem, 1.5vw, 1.16rem); }
.hero__actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2rem; }
.hero__meta { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; max-width: 42rem; margin-top: 3.2rem; padding-top: 1.4rem; border-top: 1px solid var(--color-line); }
.hero__meta li { display: flex; align-items: center; gap: .7rem; }
.hero__meta svg { width: 1.25rem; height: 1.25rem; flex: 0 0 auto; color: var(--color-forest); }
.hero__meta span { display: grid; color: var(--color-muted); font-size: .65rem; line-height: 1.35; }
.hero__meta strong { color: var(--color-ink); font-size: .72rem; }
.hero__orb { position: absolute; border-radius: 50%; filter: blur(1px); pointer-events: none; }
.hero__orb--one { top: 5%; right: -8rem; width: 26rem; height: 26rem; background: rgba(255,255,255,.35); }
.hero__orb--two { bottom: -8rem; left: 35%; width: 18rem; height: 18rem; background: rgba(155,179,166,.13); }

.hero-portrait { position: relative; z-index: 2; display: grid; min-height: 32rem; place-items: center; }
.hero-portrait__shape { position: absolute; width: min(100%, 29rem); aspect-ratio: .82; background: linear-gradient(145deg, var(--color-sage) 0%, #6d9180 100%); border-radius: 48% 48% 2.5rem 2.5rem; transform: rotate(3deg); }
.hero-portrait > img { position: relative; width: min(78%, 23rem); aspect-ratio: 1; object-fit: cover; border: .75rem solid rgba(255,255,255,.8); border-radius: 50%; box-shadow: var(--shadow-float); }
.hero-portrait__card { position: absolute; z-index: 2; bottom: 3.2rem; left: -1.5rem; display: flex; align-items: center; gap: .8rem; padding: .9rem 1rem; background: rgba(255,255,255,.92); border: 1px solid rgba(255,255,255,.72); border-radius: var(--radius-md); box-shadow: var(--shadow-card); backdrop-filter: blur(12px); }
.hero-portrait__card-icon { display: grid; width: 2.4rem; height: 2.4rem; place-items: center; color: var(--color-forest); background: var(--color-sage-pale); border-radius: 50%; }
.hero-portrait__card-icon svg { width: 1.15rem; height: 1.15rem; }
.hero-portrait__card div { display: grid; }
.hero-portrait__card strong { color: var(--color-ink); font-size: .72rem; }
.hero-portrait__card small { color: var(--color-muted); font-size: .58rem; }
.hero-portrait__name { position: absolute; z-index: 2; top: 3.1rem; right: -.4rem; display: grid; padding: .8rem 1.1rem; color: var(--color-white); background: rgba(23,56,46,.86); border-radius: var(--radius-sm); backdrop-filter: blur(10px); }
.hero-portrait__name strong { font-family: var(--font-display); font-size: 1.1rem; }
.hero-portrait__name span { font-size: .6rem; opacity: .72; }

.trust-strip { color: var(--color-white); background: var(--color-forest-dark); }
.trust-strip__grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.trust-strip__grid > div { display: grid; gap: .2rem; padding: 1.55rem 2rem; border-right: 1px solid rgba(255,255,255,.12); }
.trust-strip__grid > div:first-child { padding-left: 0; }
.trust-strip__grid > div:last-child { border-right: 0; }
.trust-strip strong { font-family: var(--font-display); font-size: 1.25rem; }
.trust-strip span { color: rgba(255,255,255,.58); font-size: .65rem; }

.split-layout { display: grid; grid-template-columns: minmax(22rem, .95fr) minmax(0, 1.05fr); align-items: center; gap: clamp(3rem, 8vw, 7rem); }
.image-composition { position: relative; min-height: 40rem; }
.image-composition figure { position: absolute; overflow: hidden; border-radius: var(--radius-xl); box-shadow: var(--shadow-soft); }
.image-composition img { width: 100%; height: 100%; object-fit: cover; }
.image-composition__main { top: 0; left: 0; width: 69%; height: 88%; }
.image-composition__secondary { right: 0; bottom: 0; width: 49%; height: 58%; border: .65rem solid var(--color-cream); }
.image-composition__badge { position: absolute; z-index: 2; right: 5%; top: 9%; display: grid; padding: 1rem 1.2rem; color: var(--color-white); background: var(--color-forest); border-radius: 50%; width: 7.5rem; height: 7.5rem; place-content: center; text-align: center; box-shadow: var(--shadow-float); }
.image-composition__badge strong { font-family: var(--font-display); font-size: 1rem; }
.image-composition__badge span { font-size: .58rem; }
.section-copy .eyebrow { margin-bottom: 1.1rem; }
.section-copy h2 { margin-bottom: 1.5rem; }
.section-copy > p { margin-top: 1rem; }

.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.15rem; margin-top: 3rem; }
.process-section { background: var(--color-white); }
.process-grid { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 3.3rem; border-top: 1px solid var(--color-line); }
.process-card { position: relative; padding: 2.1rem 1.8rem 0 0; border-right: 1px solid var(--color-line); }
.process-card:not(:first-child) { padding-left: 1.8rem; }
.process-card:last-child { border-right: 0; }
.process-card__number { position: absolute; top: 2.1rem; right: 1.8rem; color: var(--color-sand-dark); font-family: var(--font-display); font-size: 2rem; }
.process-card .icon-box { margin-bottom: 2.7rem; }
.process-card h3 { margin-bottom: .75rem; }
.process-card p { font-size: .84rem; }

.office-section { padding-block: 0; color: var(--color-white); background: var(--color-forest-dark); }
.office-showcase { display: grid; grid-template-columns: .86fr 1.14fr; min-height: 44rem; align-items: stretch; }
.office-showcase__copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 5rem clamp(2rem,5vw,4.5rem) 5rem 0; }
.office-showcase__copy h2 { margin: 1rem 0 1.3rem; color: var(--color-white); }
.office-showcase__copy > p { color: rgba(255,255,255,.65); }
.office-showcase__address { display: flex; gap: .8rem; margin: 1.8rem 0; color: rgba(255,255,255,.82); font-size: .82rem; }
.office-showcase__address svg { width: 1.25rem; height: 1.25rem; flex: 0 0 auto; }
.office-showcase__gallery { display: grid; grid-template-columns: 1.15fr .85fr; gap: .7rem; padding: .7rem 0 .7rem .7rem; }
.office-showcase__gallery img { width: 100%; height: 100%; min-height: 35rem; object-fit: cover; }
.office-showcase__gallery img:first-child { border-radius: var(--radius-xl) 0 0 var(--radius-xl); }

.faq-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(3rem,8vw,7rem); }
.faq-list { border-top: 1px solid var(--color-line); }
.cta-section { padding-top: 2rem; }
.cta-card { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: clamp(2rem,5vw,4rem); color: rgba(255,255,255,.7); background: linear-gradient(135deg, var(--color-forest-dark), var(--color-forest-soft)); border-radius: var(--radius-xl); box-shadow: var(--shadow-soft); }
.cta-card > div { max-width: 43rem; }
.cta-card h2 { margin: .8rem 0 1rem; color: var(--color-white); }
.cta-card .button { flex: 0 0 auto; }

.site-footer { margin-top: clamp(4rem,8vw,7rem); padding-top: 4.5rem; color: rgba(255,255,255,.63); background: #102c24; }
.site-footer__grid { display: grid; grid-template-columns: 1.7fr .65fr 1fr; gap: 4rem; padding-bottom: 3.5rem; }
.brand--light .brand-logo { filter: drop-shadow(0 6px 12px rgba(0,0,0,.24)); }
.brand--light .brand__text strong { color: var(--color-white); }
.brand--light .brand__text small { color: rgba(255,255,255,.5); }
.site-footer__brand > p { max-width: 27rem; margin-top: 1.5rem; font-size: .82rem; }
.site-footer__title { margin-bottom: 1.15rem; color: var(--color-white); font-family: var(--font-body); font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; }
.site-footer__links { display: grid; gap: .55rem; font-size: .78rem; }
.site-footer__links a:hover { color: var(--color-white); }
.site-footer__bottom { display: flex; justify-content: space-between; gap: 1rem; padding-block: 1.25rem; border-top: 1px solid rgba(255,255,255,.1); font-size: .67rem; }
.site-footer__bottom a { color: inherit; }
.site-footer__admin-button { display: inline-flex; align-items: center; justify-content: center; padding: .72rem 1rem; color: var(--color-white); background: linear-gradient(135deg, var(--color-forest), var(--color-forest-soft)); border: 1px solid rgba(255,255,255,.14); border-radius: var(--radius-pill); font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; box-shadow: 0 10px 24px rgba(18, 41, 33, .22); transition: transform var(--transition-fast), box-shadow var(--transition-fast), filter var(--transition-fast); }
.site-footer__admin-button:hover { color: var(--color-white); filter: brightness(1.03); box-shadow: 0 14px 28px rgba(18, 41, 33, .28); transform: translateY(-1px); }

body.has-admin-login-open { overflow: hidden; }

.admin-login-modal { position: fixed; inset: 0; z-index: 2000; display: none; place-items: center; width: 100%; max-width: none; padding: 1.25rem; background: transparent; border: 0; }
.admin-login-modal[open] { display: grid; }
.admin-login-modal::backdrop { background: rgba(7, 20, 16, .62); backdrop-filter: blur(10px); }
.admin-login-modal__dialog { position: relative; z-index: 1; width: min(100%, 33rem); padding: clamp(1.5rem, 4vw, 2.4rem); background: var(--color-cream); border: 1px solid rgba(40,77,63,.14); border-radius: var(--radius-xl); box-shadow: 0 30px 80px rgba(10, 28, 22, .3); }
.admin-login-modal__close { position: absolute; top: .95rem; right: .95rem; width: 2.4rem; height: 2.4rem; color: var(--color-forest-dark); background: rgba(255,255,255,.9); border-radius: 50%; font-size: 1.4rem; line-height: 1; }
.admin-login-modal__brand { display: flex; align-items: center; gap: 1rem; padding-right: 2.2rem; }
.admin-login-modal__logo { display: block; width: 4.5rem; height: 4.5rem; object-fit: contain; flex-shrink: 0; }
.admin-login-modal__brand h2 { margin-top: .2rem; font-size: clamp(1.6rem, 2.2vw, 2.15rem); }
.admin-login-modal__description { margin-top: 1rem; color: var(--color-muted); font-size: .9rem; }
.admin-login-form { display: grid; gap: .95rem; margin-top: 1.5rem; }
.admin-login-modal__actions { display: flex; gap: .8rem; justify-content: flex-end; margin-top: .35rem; }
