/* Shared frontend/editor styling. All decorative effects stay in theme content. */
:is(.bg-site,.bg-header,.bg-footer,.legal-page) {
  --forest:var(--wp--preset--color--forest,#183c32);
  --deep:var(--wp--preset--color--deep-forest,#112b24);
  --ivory:var(--wp--preset--color--ivory,#f4f1e9);
  --paper:var(--wp--preset--color--paper,#fffdf7);
  --sand:var(--wp--preset--color--sand,#d9c5a9);
  --copper:var(--wp--preset--color--copper,#a56d3b);
  --ink:var(--wp--preset--color--ink,#15241f);
  --display:var(--wp--preset--font-family--display,Georgia,serif);
  --body:var(--wp--preset--font-family--body,'Segoe UI',Arial,sans-serif);
  font-family:inherit;
  box-sizing:border-box;
}
:is(.bg-site,.bg-header,.bg-footer,.legal-page) * { box-sizing:border-box; }
.wp-site-blocks { padding:0; }
.wp-site-blocks > *, .bg-main, .bg-main > .wp-block-post-content { margin-block:0; }
.bg-main > .wp-block-post-content { max-width:none; }
html { scroll-behavior:smooth; }
.bg-site { background:var(--ivory); color:var(--ink); overflow:hidden; }
.bg-site p,.bg-header p,.bg-footer p { margin:0; }
.bg-site h1,.bg-site h2,.bg-site h3 { margin:0; }
.bg-site a,.bg-header a,.bg-footer a { color:inherit; }
.bg-site img { display:block; max-width:100%; }
.bg-site figure { margin:0; }
.bg-header {
  display:flex; align-items:center; justify-content:space-between; gap:28px;
  padding:26px max(24px,calc((100vw - 1240px)/2)); background:var(--forest); color:var(--paper);
  border-bottom:1px solid rgb(255 253 247 / 20%);
}
.brand { display:flex; align-items:center; gap:12px; flex-shrink:0; }
.brand-mark { display:grid; width:42px; height:42px; place-items:center; border:1px solid currentColor; border-radius:50%; font:15px var(--display); }
.brand-mark a,.brand-name a { text-decoration:none; }
.brand-name { font-family:var(--display); font-size:16px; font-weight:500; line-height:1.5; }
.brand-role { margin-top:2px!important; font-size:10px; line-height:1.6; letter-spacing:.15em; text-transform:uppercase; opacity:.7; }
.bg-navigation { font-size:13px; }
.bg-navigation .wp-block-navigation__container { gap:30px; }
.bg-navigation .wp-block-navigation-item__content { text-decoration:none; }
.bg-navigation .wp-block-navigation__container > li:last-child a { padding:10px 16px; border:1px solid currentColor; border-radius:999px; }
.bg-navigation .wp-block-navigation__responsive-container.is-menu-open { background:var(--forest); color:var(--paper); }
.bg-navigation .is-menu-open .wp-block-navigation__container { gap:22px; }
.hero {
  position:relative; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  grid-template-rows:1fr auto; gap:48px 64px;
  padding:84px max(24px,calc((100vw - 1240px)/2)) 36px;
  background:linear-gradient(125deg,var(--deep),var(--forest)); color:var(--paper);
}
.hero-copy { align-self:center; min-width:0; }
.eyebrow { color:var(--sand); font-size:12px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; margin-bottom:24px!important; }
.hero h1 { font-size:clamp(48px,6.2vw,88px); letter-spacing:-.045em; line-height:1.02; overflow-wrap:normal; }
.hero h1 em { color:var(--sand); font-weight:400; }
.hero-intro { margin-top:32px!important; font-size:17px; line-height:1.75; opacity:.8; max-width:610px; }
.hero-actions { margin-top:36px; gap:12px; }
.hero-actions .wp-block-button__link { font-size:13px; text-decoration:none; min-height:50px; display:inline-flex; align-items:center; justify-content:center; }
.button-primary .wp-block-button__link { background:var(--paper); color:var(--forest); }
.button-secondary .wp-block-button__link { background:transparent; color:var(--paper); border:1px solid rgb(255 253 247 / 40%); }
.hero-visual { position:relative; height:570px; min-width:0; overflow:hidden; border-radius:4px 72px 4px 4px; align-self:center; box-shadow:0 30px 70px rgb(0 0 0 / 20%); }
.hero-visual > figure,.hero-visual > figure img { width:100%; height:100%; object-fit:cover; }
.visual-note { position:absolute; left:22px; right:22px; bottom:22px; padding:16px; border:1px solid rgb(255 255 255 / 25%); background:rgb(12 38 31 / 90%); font-size:13px; }
.visual-note .contact-label { margin-bottom:5px!important; }
.facts { grid-column:1/-1; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgb(255 253 247 / 22%); }
.fact { display:flex; align-items:center; gap:14px; padding:28px 30px; border-right:1px solid rgb(255 253 247 / 22%); min-width:0; }
.fact:first-child { padding-left:0; }
.fact:last-child { border-right:0; }
.fact-value { font-family:var(--display); font-size:30px; line-height:1.2; white-space:nowrap; }
.fact-label { max-width:170px; font-size:11px; line-height:1.5; opacity:.7; }
.section { width:min(1180px,calc(100% - 48px)); margin-inline:auto; padding-block:120px; }
.section-heading { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:18px 72px; align-items:end; }
.section-kicker { grid-column:1/-1; color:var(--copper); font-size:11px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.section-heading h2,.about-copy h2,.process-intro h2,.contact-copy h2 { font-size:clamp(40px,5.3vw,72px); letter-spacing:-.04em; line-height:1.06; }
.section-heading > p:last-child,.process-intro > p:last-child,.contact-copy > p:last-child { color:#5e6c66; font-size:15px; line-height:1.8; }
.profile-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin-top:70px; border-top:1px solid #d7d3c9; border-left:1px solid #d7d3c9; }
.profile-card { min-width:0; min-height:310px; padding:30px; border-right:1px solid #d7d3c9; border-bottom:1px solid #d7d3c9; background:rgb(255 253 247 / 52%); }
.icon-wrap { display:grid; width:44px; height:44px; place-items:center; border:1px solid #c6c9c3; border-radius:50%; color:var(--forest); font-size:13px; }
.profile-card h3 { margin:58px 0 12px; font-size:24px; letter-spacing:-.02em; line-height:1.2; }
.profile-card > p:last-child { color:#5e6c66; font-size:13px; line-height:1.75; }
.criteria-band { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-top:34px; padding:24px 28px; border:1px solid #d7d3c9; background:#e9e5db; }
.criteria-band > p { font:17px var(--display); }
.criteria-items { display:flex; flex-wrap:wrap; gap:16px; color:#4d5f57; font-size:12px; }
.portfolio-section { background:var(--deep); color:var(--paper); }
.light-heading > p:last-child { color:var(--paper); opacity:.7; }
.portfolio-grid { display:grid; grid-template-columns:1.45fr 1fr; grid-template-rows:repeat(2,minmax(320px,auto)); gap:18px; margin-top:70px; }
.portfolio-card { position:relative; overflow:hidden; min-height:320px; background:var(--forest); }
.portfolio-card-large { grid-row:span 2; }
.portfolio-card > figure { position:absolute; inset:0; width:100%; height:100%; }
.portfolio-card > figure img { width:100%; height:100%; object-fit:cover; }
.portfolio-card::after { position:absolute; inset:35% 0 0; background:linear-gradient(to top,rgb(8 27 22 / 93%),transparent); content:''; pointer-events:none; }
.portfolio-caption { position:absolute; z-index:1; right:28px; bottom:28px; left:28px; }
.location-label,.contact-label { color:var(--sand); font-size:10px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.portfolio-caption h3 { margin:8px 0 9px; font-size:28px; color:var(--paper); line-height:1.15; }
.portfolio-caption > p:last-child { color:var(--paper); font-size:13px; opacity:.8; }
.portfolio-quote-card { display:flex; flex-direction:column; justify-content:center; padding:46px; background:var(--sand); color:var(--forest); }
.portfolio-quote-card::after { display:none; }
.portfolio-quote-card .strategy-text { margin:14px 0 24px; font-family:var(--display); font-size:25px; line-height:1.35; }
.strategy-label { color:#575644; font-size:10px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.about-section { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:92px; align-items:center; }
.about-image { position:relative; height:660px; overflow:hidden; }
.about-image > figure,.about-image > figure img { width:100%; height:100%; object-fit:cover; }
.about-image-label { position:absolute; bottom:0; left:0; right:0; padding:24px; background:var(--forest); color:var(--paper); display:flex; justify-content:space-between; gap:15px; font-size:13px; }
.about-copy .section-kicker { margin-bottom:20px; }
.about-lead { margin:25px 0 20px!important; font-size:19px; line-height:1.7; }
.about-copy > p:not(.section-kicker,.about-lead) { color:#5e6c66; font-size:14px; line-height:1.8; }
.credential-list { margin-top:32px; border-top:1px solid #d7d3c9; }
.credential { padding:19px 0; border-bottom:1px solid #d7d3c9; }
.credential h3 { font:600 14px var(--body); margin-bottom:4px; }
.credential p { color:#5e6c66; font-size:12px; line-height:1.7; }
.process-section { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:92px; border-top:1px solid #d7d3c9; }
.process-intro .section-kicker { margin-bottom:20px; }
.process-intro h2 { margin-bottom:22px; }
.process-step { display:grid; grid-template-columns:44px 1fr; gap:12px 20px; padding:28px 0; border-bottom:1px solid #d7d3c9; }
.step-number { grid-row:span 2; color:var(--copper); font-size:12px; padding-top:3px; }
.process-step h3 { font-size:25px; }
.process-step > p:last-child { color:#5e6c66; font-size:14px; line-height:1.75; }
.contact-section { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.85fr); gap:100px; padding:100px max(24px,calc((100vw - 1180px)/2)); background:var(--forest); color:var(--paper); align-items:center; }
.contact-copy .section-kicker { color:var(--sand); margin-bottom:20px; }
.contact-copy > p:last-child { color:var(--paper); opacity:.8; margin-top:24px; }
.contact-card { min-width:0; padding:42px; border:1px solid rgb(255 253 247 / 30%); background:rgb(0 0 0 / 10%); }
.contact-card h3 { font-size:30px; margin:20px 0; }
.contact-email,.contact-phone { font-size:16px; margin-top:15px!important; overflow-wrap:anywhere; }
.contact-phone { color:var(--sand); }
.contact-card .wp-block-buttons { margin-top:30px; }
.contact-action .wp-block-button__link { color:var(--forest); background:var(--paper); font-size:13px; text-decoration:none; text-align:left; }
.bg-footer { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:24px; padding:34px max(24px,calc((100vw - 1180px)/2)); background:var(--deep); color:var(--paper); }
.bg-footer > p { font-size:11px; opacity:.7; }
.legal-links { display:flex; gap:22px; font-size:12px; }
.legal-links a { text-underline-offset:3px; }
.legal-page { width:min(850px,calc(100% - 40px)); margin:auto; padding:65px 0 100px; color:var(--ink); }
.legal-page h1 { font-size:clamp(42px,8vw,65px); line-height:1.1; margin:0 0 38px; }
.legal-page h2 { font-size:27px; line-height:1.2; margin:34px 0 16px; }
.legal-page p { font-size:16px; line-height:1.85; margin:0 0 18px; }
.legal-page a { text-underline-offset:3px; overflow-wrap:anywhere; }
.privacy-draft-notice { padding:20px; background:#eee2c6; border-left:3px solid var(--copper); }
.bg-header a:focus-visible,.bg-footer a:focus-visible,.bg-site a:focus-visible,.legal-page a:focus-visible { outline:3px solid var(--copper); outline-offset:5px; }
.bg-site section[id] { scroll-margin-top:20px; }
/* Make overlapping photo captions selectable in the editor without hiding content. */
.editor-styles-wrapper .portfolio-caption { position:relative; inset:auto; margin-top:auto; }
.editor-styles-wrapper .portfolio-card:not(.portfolio-quote-card) { padding:28px; display:flex; flex-direction:column; justify-content:flex-end; }
.editor-styles-wrapper .portfolio-caption { z-index:2; }
@media(max-width:1050px) {
  .hero { gap:42px; }
  .hero h1 { font-size:64px; }
  .fact { padding-inline:18px; }
  .fact-value { font-size:26px; }
  .profile-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .about-section,.process-section { gap:50px; }
  .contact-section { gap:48px; }
}
@media(max-width:820px) {
  .bg-header { padding-inline:24px; }
  .bg-navigation .wp-block-navigation__container { gap:16px; }
  .hero { grid-template-columns:1fr; padding-top:52px; }
  .hero-visual { height:520px; }
  .hero h1 { font-size:clamp(52px,10vw,76px); }
  .section { padding-block:84px; }
  .section-heading { grid-template-columns:1fr; gap:24px; }
  .section-heading > p:last-child { max-width:640px; }
  .criteria-band { flex-direction:column; align-items:flex-start; }
  .portfolio-grid { grid-template-columns:1fr; grid-template-rows:auto; }
  .portfolio-card-large { grid-row:auto; min-height:560px; }
  .portfolio-card:not(.portfolio-card-large) { min-height:380px; }
  .about-section,.process-section,.contact-section { grid-template-columns:1fr; }
  .about-image { height:560px; }
  .contact-section { padding-block:80px; }
  .bg-footer { align-items:flex-start; flex-direction:column; }
}
@media(max-width:620px) {
  .bg-header { padding:20px 16px; }
  .brand-name { font-size:14px; }
  .hero { gap:32px; padding:44px 20px 28px; }
  .hero h1 { font-size:clamp(34px,11vw,64px); overflow-wrap:anywhere; hyphens:auto; }
  .hero-intro { font-size:15px; }
  .hero-visual { height:420px; border-radius:4px 48px 4px 4px; }
  .facts { grid-template-columns:1fr; }
  .fact,.fact:first-child { padding:18px 0; border-right:0; border-bottom:1px solid rgb(255 253 247 / 18%); }
  .fact:last-child { border-bottom:0; }
  .section { width:calc(100% - 32px); }
  .section-heading h2,.about-copy h2,.process-intro h2,.contact-copy h2 { font-size:42px; }
  .profile-grid { grid-template-columns:1fr; margin-top:46px; }
  .profile-card { min-height:260px; }
  .profile-card h3 { margin-top:46px; }
  .criteria-items { flex-direction:column; align-items:flex-start; }
  .portfolio-grid { margin-top:48px; }
  .portfolio-card-large,.portfolio-card:not(.portfolio-card-large) { min-height:420px; }
  .portfolio-quote-card { padding:34px; }
  .about-section { gap:48px; }
  .about-image { height:460px; }
  .about-image-label { flex-direction:column; }
  .process-step { grid-template-columns:30px 1fr; }
  .contact-section { padding-inline:20px; }
  .contact-card { padding:28px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
