:root{
  --ink:#12161C; --ink-soft:#1F262F; --steel:#1F3A5F; --steel-light:#345580;
  --paper:#EFEBE2; --paper-dim:#E4DFD3; --brass:#B8863B; --brass-light:#D3A45E;
  --verified:#3E6B4F; --white:#FAFAF8; --line: rgba(18,22,28,0.12); --line-dark: rgba(250,250,248,0.14);
  --font-display:'Big Shoulders Display', sans-serif; --font-body:'IBM Plex Sans', sans-serif; --font-mono:'IBM Plex Mono', monospace;

  /* ---- Per-section background / accent colors (overridden live from Customizer) ---- */
  --header-bg:var(--paper); --header-text:var(--ink-soft);
  --hero-bg:var(--paper); --hero-heading:var(--ink);
  --trust-bg:var(--white); --trust-text:#7A7F86;
  --services-bg:var(--paper); --services-heading:var(--ink);
  --process-bg:var(--ink); --process-accent:var(--white);
  --statband-bg:var(--steel); --statband-accent:var(--brass-light);
  --testimonial-bg:var(--paper-dim); --testimonial-text:var(--ink);
  --cta-bg:var(--ink); --cta-heading:var(--white);
  --footer-bg:var(--ink); --footer-accent:var(--brass-light);

  /* ---- Per-section font-size scale multipliers (overridden live from Customizer) ---- */
  --fs-base:16px;
  --scale-hero:1; --scale-services:1; --scale-process:1; --scale-statband:1;
  --scale-testimonial:1; --scale-cta:1; --scale-trust:1; --scale-footer:1; --scale-buttons:1;

  /* ---- Premium layer: gradients, elevation, motion ---- */
  --grad-steel:linear-gradient(135deg, var(--steel) 0%, var(--steel-light) 60%, #3d6aa3 130%);
  --grad-brass:linear-gradient(135deg, var(--brass) 0%, var(--brass-light) 100%);
  --grad-ink:linear-gradient(160deg, var(--ink) 0%, var(--ink-soft) 55%, var(--steel) 140%);
  --grad-mesh:radial-gradient(circle at 15% 20%, rgba(184,134,59,0.22), transparent 45%),
              radial-gradient(circle at 85% 15%, rgba(52,85,128,0.28), transparent 42%),
              radial-gradient(circle at 50% 100%, rgba(184,134,59,0.12), transparent 55%);
  --shadow-sm:0 2px 10px -4px rgba(18,22,28,0.14);
  --shadow-md:0 18px 34px -16px rgba(18,22,28,0.26);
  --shadow-lg:0 32px 64px -22px rgba(18,22,28,0.36);
  --shadow-glow-brass:0 14px 34px -10px rgba(184,134,59,0.5);
  --shadow-glow-steel:0 14px 34px -10px rgba(31,58,95,0.42);
  --ease:cubic-bezier(.22,1,.36,1);
  --glass-blur:16px;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth; font-size:var(--fs-base,16px);}
body{font-family:var(--font-body); background:var(--paper); color:var(--ink); line-height:1.5; -webkit-font-smoothing:antialiased; font-size:1rem;}
img,svg{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;}
.wrap{max-width:1180px;margin:0 auto;padding:0 32px;}
@media (prefers-reduced-motion: reduce){*{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}}

/* utility bar */
.utility-bar{background:var(--ink); color:var(--paper-dim); font-family:var(--font-mono); font-size:0.75rem;}
.utility-bar .wrap{display:flex; justify-content:space-between; align-items:center; padding:8px 32px; flex-wrap:wrap; gap:8px;}
.utility-bar a{color:var(--brass-light);}
.utility-links{display:flex; gap:24px;}
.utility-bar .tagline{color:rgba(250,250,248,0.45);}

/* header */
header.site-header{
  background:color-mix(in srgb, var(--header-bg,var(--paper)) 86%, transparent);
  backdrop-filter:blur(var(--glass-blur)) saturate(160%);
  -webkit-backdrop-filter:blur(var(--glass-blur)) saturate(160%);
  border-bottom:1px solid var(--line); position:sticky; top:0; z-index:50;
  transition:box-shadow .4s var(--ease), background .4s var(--ease);
}
header.site-header.is-scrolled{box-shadow:var(--shadow-md); border-bottom-color:transparent;}
header.site-header .wrap{display:flex; align-items:center; justify-content:space-between; padding:18px 32px; flex-wrap:wrap; gap:12px; transition:padding .35s var(--ease);}
header.site-header.is-scrolled .wrap{padding-top:11px; padding-bottom:11px;}
header.site-header.is-scrolled .custom-logo,
header.site-header.is-scrolled .logo-mark{transform:scale(.9); transition:transform .35s var(--ease);}
.logo{display:flex; align-items:center; gap:12px;}
.logo-mark{width:40px;height:40px;flex-shrink:0;}
.logo-word{font-family:var(--font-display); font-weight:700; font-size:1.375rem; line-height:1;}
.logo-word span{display:block; font-family:var(--font-mono); font-size:0.5625rem; font-weight:500; letter-spacing:.16em; color:var(--steel); margin-top:3px;}
.custom-logo{max-height:44px; width:auto;}
nav.primary ul{display:flex; gap:36px; align-items:center; flex-wrap:wrap;}
nav.primary a{font-size:0.875rem; font-weight:500; color:var(--header-text,var(--ink-soft)); position:relative; padding:4px 0;}
nav.primary a::after{content:''; position:absolute; left:0; bottom:-2px; width:0; height:2px; background:var(--brass); transition:width .2s ease;}
nav.primary a:hover::after{width:100%;}
.menu-toggle{display:none; background:none; border:1px solid var(--ink); padding:8px 12px; font-family:var(--font-mono); font-size:0.75rem; cursor:pointer;}

.btn{position:relative; overflow:hidden; display:inline-flex; align-items:center; gap:8px; font-family:var(--font-body); font-weight:600; font-size:calc(0.875rem * var(--scale-buttons,1)); padding:12px 22px; border-radius:2px; cursor:pointer; border:1px solid transparent; transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease), border-color .25s var(--ease);}
.btn::before{content:''; position:absolute; inset:0; background:linear-gradient(115deg, transparent 30%, rgba(255,255,255,.4) 50%, transparent 70%); transform:translateX(-130%); transition:transform .65s var(--ease); pointer-events:none;}
.btn:hover::before{transform:translateX(130%);}
.btn-primary{background:var(--grad-steel); color:var(--white); box-shadow:var(--shadow-glow-steel);}
.btn-primary:hover{transform:translateY(-2px); box-shadow:var(--shadow-lg);}
.btn-ghost{border-color:var(--ink); color:var(--ink);}
.btn-ghost:hover{background:var(--ink); color:var(--white); transform:translateY(-2px); box-shadow:var(--shadow-md);}
.btn-brass{background:var(--grad-brass); color:var(--ink); box-shadow:var(--shadow-glow-brass);}
.btn-brass:hover{transform:translateY(-2px); box-shadow:var(--shadow-lg);}

.eyebrow{font-family:var(--font-mono); font-size:0.75rem; letter-spacing:.16em; text-transform:uppercase; color:var(--steel); display:flex; align-items:center; gap:10px; margin-bottom:18px;}
.eyebrow::before{content:''; width:22px; height:2px; background:var(--grad-brass); border-radius:1px;}

/* hero */
.hero{padding:76px 0 90px; overflow:hidden; background:var(--hero-bg,var(--paper)); position:relative;}
.hero .wrap{display:block; max-width:720px; position:relative; z-index:1;}
h1.hero-title{font-family:var(--font-display); font-weight:800; font-size:calc(clamp(2.25rem,5vw,4rem) * var(--scale-hero,1)); line-height:0.98; color:var(--hero-heading,var(--ink)); margin-bottom:22px;}
.hero-sub{font-size:calc(1.0625rem * var(--scale-hero,1)); color:#3A4048; max-width:480px; margin-bottom:34px;}
.hero-ctas{display:flex; gap:14px; margin-bottom:48px; flex-wrap:wrap;}
.hero-stats{display:flex; gap:36px; border-top:1px solid var(--line); padding-top:24px; flex-wrap:wrap;}
.hero-stat .num{font-family:var(--font-mono); font-size:calc(1.625rem * var(--scale-hero,1)); font-weight:600; color:var(--hero-heading,var(--ink)); background:var(--grad-brass); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;}
.hero-stat .label{font-size:calc(0.75rem * var(--scale-hero,1)); color:#5b6169; margin-top:4px;}

/* hero glow blobs (decorative, parallax-driven) */
.hero-glow{position:absolute; border-radius:50%; filter:blur(64px); pointer-events:none; z-index:0; will-change:transform;}
.hero-glow.g1{width:440px; height:440px; top:-160px; right:-90px; opacity:.5; background:radial-gradient(circle, var(--brass-light), transparent 70%);}
.hero-glow.g2{width:360px; height:360px; bottom:-190px; left:-110px; opacity:.32; background:radial-gradient(circle, var(--steel-light), transparent 70%);}
.hero-glow.g3{width:220px; height:220px; top:40%; right:18%; opacity:.22; background:radial-gradient(circle, var(--brass), transparent 70%);}
@media (max-width:980px){.hero-glow{display:none;}}



/* trust strip */
.trust-strip{background:var(--trust-bg,var(--white)); border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:22px 0;}
.trust-strip .wrap{display:flex; align-items:center; gap:40px; justify-content:space-between; flex-wrap:wrap;}
.trust-label{font-family:var(--font-mono); font-size:calc(0.6875rem * var(--scale-trust,1)); letter-spacing:.12em; color:var(--trust-text,#7a7f86); text-transform:uppercase; white-space:nowrap;}
.trust-logos{display:flex; gap:36px; flex-wrap:wrap;}
.trust-logos span{font-family:var(--font-display); font-weight:600; font-size:calc(1rem * var(--scale-trust,1)); color:var(--trust-text,#8a8f96); opacity:.88;}

/* sections */
.section{padding:96px 0;}
.section-head{max-width:600px; margin-bottom:56px;}
.section-tag{font-family:var(--font-mono); font-size:0.75rem; letter-spacing:.16em; text-transform:uppercase; color:var(--brass); margin-bottom:14px; display:block;}
h2.section-title{font-family:var(--font-display); font-weight:700; font-size:clamp(1.75rem,3.4vw,2.625rem); color:var(--ink); line-height:1.05;}
.section-desc{margin-top:16px; color:#4a4f57; font-size:1rem;}

/* homepage services section — colors & scale */
.services{background:var(--services-bg,var(--paper));}
.services h2.section-title{color:var(--services-heading,var(--ink)); font-size:calc(clamp(1.75rem,3.4vw,2.625rem) * var(--scale-services,1));}
.services .section-desc{font-size:calc(1rem * var(--scale-services,1));}
.services .service-card h3{font-size:calc(1.4375rem * var(--scale-services,1));}
.services .service-card p{font-size:calc(0.9062rem * var(--scale-services,1));}

/* services grid (homepage teaser) */
.services-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
.service-card{background:var(--white); border:1px solid var(--line); padding:34px 28px 30px; position:relative; overflow:hidden; box-shadow:var(--shadow-sm); transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease);}
.service-card::before{content:''; position:absolute; top:0; left:0; right:0; height:3px; background:var(--grad-brass); transform:scaleX(0); transform-origin:left; transition:transform .45s var(--ease);}
.service-card:hover{transform:translateY(-8px); box-shadow:var(--shadow-lg); border-color:transparent;}
.service-card:hover::before{transform:scaleX(1);}
.service-index{font-family:var(--font-mono); font-size:0.75rem; color:var(--brass); letter-spacing:.1em; margin-bottom:18px;}
.service-card h3{font-family:var(--font-display); font-weight:700; font-size:1.4375rem; margin-bottom:12px;}
.service-card p{font-size:0.9062rem; color:#565b63; margin-bottom:20px;}
.service-link{font-size:0.8125rem; font-weight:600; color:var(--steel); display:inline-flex; align-items:center; gap:6px;}
.service-link::after{content:'→'; transition:transform .18s ease;}
.service-card:hover .service-link::after{transform:translateX(4px);}

/* services page detail */
.service-detail{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; padding:88px 0; border-bottom:1px solid var(--line);}
.service-detail:last-of-type{border-bottom:none;}
.service-detail.reverse .figure{order:2;}
.figure{background:var(--ink); aspect-ratio:5/4; position:relative; padding:26px; display:flex; flex-direction:column; justify-content:space-between; overflow:hidden;}
.figure img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.5;}
.figure::before{content:''; position:absolute; inset:14px; border:1px dashed rgba(250,250,248,0.14); z-index:1;}
.figure .tag{font-family:var(--font-mono); font-size:0.6875rem; color:var(--brass-light); letter-spacing:.1em; z-index:2; position:relative;}
.figure .num{font-family:var(--font-display); font-weight:800; font-size:5rem; color:rgba(250,250,248,0.12); z-index:2; position:relative; line-height:1;}
.service-detail h3{font-family:var(--font-display); font-weight:700; font-size:clamp(1.625rem,2.8vw,2.125rem); margin-bottom:16px;}
.service-detail .lead{color:#3A4048; font-size:0.9688rem; margin-bottom:24px;}
.checklist{border-top:1px solid var(--line); margin-top:8px;}
.checklist li{display:flex; align-items:baseline; gap:12px; padding:13px 0; border-bottom:1px solid var(--line); font-size:0.9062rem; color:#3A4048;}
.checklist li .chk{font-family:var(--font-mono); font-size:0.6875rem; color:var(--verified); flex-shrink:0;}
.service-detail .cta-row{margin-top:26px;}

/* process */
.process{background:var(--process-bg,var(--ink)); color:var(--paper); padding:96px 0;}
.process .section-tag{color:var(--brass-light);}
.process h2.section-title{color:var(--process-accent,var(--white)); font-size:calc(clamp(1.75rem,3.4vw,2.625rem) * var(--scale-process,1));}
.process .section-desc{color:rgba(250,250,248,0.55); font-size:calc(1rem * var(--scale-process,1));}
.process-list{margin-top:56px; display:grid; grid-template-columns:repeat(4,1fr); gap:0;}
.process-step{border-left:1px solid var(--line-dark); padding:0 26px; transition:transform .4s var(--ease);}
.process-step:first-child{border-left:none;}
.process-step:hover{transform:translateY(-4px);}
.process-step .step-num{font-family:var(--font-mono); font-size:calc(0.8125rem * var(--scale-process,1)); background:var(--grad-brass); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; margin-bottom:16px; display:inline-block;}
.process-step h4{font-family:var(--font-display); font-weight:600; font-size:calc(1.25rem * var(--scale-process,1)); margin-bottom:10px; color:var(--process-accent,var(--white));}
.process-step p{font-size:calc(0.8438rem * var(--scale-process,1)); color:rgba(250,250,248,0.55);}

/* stat band */
.stat-band{background:var(--statband-bg,var(--steel)); background-image:linear-gradient(120deg, var(--statband-bg,var(--steel)) 0%, color-mix(in srgb, var(--statband-bg,var(--steel)) 70%, black) 100%); color:var(--white); padding:56px 0; position:relative; overflow:hidden;}
.stat-band .wrap{display:grid; grid-template-columns:repeat(4,1fr); gap:24px; text-align:center; position:relative; z-index:1;}
.stat-band .num{font-family:var(--font-mono); font-weight:600; font-size:calc(2.375rem * var(--scale-statband,1)); color:var(--statband-accent,var(--brass-light)); text-shadow:0 0 28px rgba(184,134,59,0.35);}
.stat-band .label{font-size:calc(0.7812rem * var(--scale-statband,1)); margin-top:8px; color:rgba(250,250,248,0.75);}

/* testimonial */
.testimonial{padding:100px 0; background:var(--testimonial-bg,var(--paper-dim));}
.testimonial .wrap{max-width:760px; text-align:center;}
.quote-mark{font-family:var(--font-display); font-size:4.5rem; background:var(--grad-brass); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; line-height:1; margin-bottom:8px;}
.testimonial blockquote{font-family:var(--font-display); font-weight:500; font-size:calc(clamp(1.375rem,2.6vw,1.875rem) * var(--scale-testimonial,1)); line-height:1.3; color:var(--testimonial-text,var(--ink));}
.testimonial cite{display:block; margin-top:26px; font-style:normal; font-family:var(--font-mono); font-size:calc(0.8125rem * var(--scale-testimonial,1)); color:#5b6169;}

/* CTA banner */
.cta-banner{background:var(--cta-bg,var(--ink)); padding:80px 0; text-align:center; position:relative; overflow:hidden;}
.cta-banner::before{content:''; position:absolute; inset:0; background:var(--grad-mesh); z-index:0;}
.cta-banner .wrap{position:relative; z-index:1;}
.cta-banner h2{font-family:var(--font-display); font-weight:700; font-size:calc(clamp(1.75rem,3.6vw,2.75rem) * var(--scale-cta,1)); color:var(--cta-heading,var(--white)); margin-bottom:18px;}
.cta-banner p{color:rgba(250,250,248,0.6); font-size:calc(1rem * var(--scale-cta,1)); margin-bottom:34px;}
.cta-actions{display:flex; gap:14px; justify-content:center; flex-wrap:wrap;}

/* about page */
.story{display:grid; grid-template-columns:0.9fr 1.1fr; gap:64px; align-items:start;}
.story-figure{background:var(--ink); aspect-ratio:4/5; position:relative; overflow:hidden; display:flex; align-items:flex-end; padding:28px;}
.story-figure img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.6;}
.story-figure .ref{font-family:var(--font-mono); font-size:0.6875rem; color:var(--brass-light); letter-spacing:.1em; position:relative; z-index:1;}
.story-figure::before{content:''; position:absolute; inset:16px; border:1px dashed rgba(250,250,248,0.15); z-index:1;}
.entry-content p{color:#3A4048; font-size:0.9688rem; margin-bottom:18px;}
.entry-content h2, .entry-content h3{font-family:var(--font-display); margin:28px 0 14px;}
.entry-content ul, .entry-content ol{margin:0 0 18px 20px; color:#3A4048;}
.entry-content a{color:var(--steel); text-decoration:underline;}
.entry-content img{margin:24px 0; width:100%; height:auto;}

.values-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:56px;}
.value-card{background:var(--white); padding:32px 26px; position:relative; transition:transform .35s var(--ease), box-shadow .35s var(--ease); z-index:0;}
.value-card:hover{transform:translateY(-6px) scale(1.015); box-shadow:var(--shadow-md); z-index:1;}
.value-card .idx{font-family:var(--font-mono); font-size:0.75rem; color:var(--brass); margin-bottom:16px;}
.value-card h4{font-family:var(--font-display); font-weight:700; font-size:1.25rem; margin-bottom:10px;}
.value-card p{font-size:0.8438rem; color:#565b63;}

.timeline{background:var(--ink); color:var(--paper); padding:96px 0;}
.timeline .section-tag{color:var(--brass-light);}
.timeline h2.section-title{color:var(--white);}
.timeline .section-desc{color:rgba(250,250,248,0.55);}
.tl-list{margin-top:56px; border-top:1px solid var(--line-dark);}
.tl-row{display:grid; grid-template-columns:140px 1fr; gap:32px; padding:26px 0; border-bottom:1px solid var(--line-dark);}
.tl-row .yr{font-family:var(--font-mono); font-size:1.375rem; color:var(--brass-light);}
.tl-row h5{font-family:var(--font-display); font-weight:600; font-size:1.1875rem; color:var(--white); margin-bottom:6px;}
.tl-row p{font-size:0.875rem; color:rgba(250,250,248,0.55); max-width:560px;}

/* team */
.team-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:56px;}
.team-card{background:var(--white); border:1px solid var(--line); overflow:hidden; box-shadow:var(--shadow-sm); transition:transform .4s var(--ease), box-shadow .4s var(--ease);}
.team-card:hover{transform:translateY(-8px); box-shadow:var(--shadow-lg);}
.team-photo{aspect-ratio:4/5; background:var(--paper-dim); overflow:hidden;}
.team-photo img{width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease);}
.team-card:hover .team-photo img{transform:scale(1.06);}
.team-info{padding:22px 24px;}
.team-info h4{font-family:var(--font-display); font-weight:700; font-size:1.25rem;}
.team-info .role{font-family:var(--font-mono); font-size:0.7188rem; color:var(--brass); letter-spacing:.08em; text-transform:uppercase; margin-top:4px;}
.team-info .bio{font-size:0.8438rem; color:#565b63; margin-top:12px;}

/* accreditation */
.accred{background:var(--white); border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:56px 0;}
.accred-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:32px; text-align:center;}
.accred-item .num{font-family:var(--font-mono); font-weight:600; font-size:1.875rem; color:var(--steel);}
.accred-item .label{font-size:0.7812rem; color:#5b6169; margin-top:6px;}

/* FAQ */
.faq{background:var(--paper-dim); padding:96px 0;}
.faq-list{max-width:820px; margin-top:48px;}
.faq-item{border-bottom:1px solid var(--line); padding:24px 0;}
.faq-item h4{font-family:var(--font-display); font-weight:600; font-size:1.1875rem; margin-bottom:8px;}
.faq-item p{font-size:0.9062rem; color:#4a4f57; max-width:640px;}

/* contact page */
.contact-grid{display:grid; grid-template-columns:1fr 1.15fr; gap:64px;}
.info-block{margin-bottom:36px;}
.info-block .lbl{font-family:var(--font-mono); font-size:0.6875rem; letter-spacing:.12em; text-transform:uppercase; color:var(--brass); margin-bottom:10px;}
.info-block .val{font-family:var(--font-display); font-weight:600; font-size:1.375rem;}
.info-block .val a:hover{color:var(--steel);}
.info-block p.note{font-size:0.8438rem; color:#5b6169; margin-top:6px;}
.form-card{background:var(--white); border:1px solid var(--line); padding:40px; box-shadow:var(--shadow-md); position:relative;}
.form-card::before{content:''; position:absolute; top:0; left:0; right:0; height:3px; background:var(--grad-brass);}
.form-card h3{font-family:var(--font-display); font-weight:700; font-size:1.5rem; margin-bottom:6px;}
.form-card .sub{font-size:0.8438rem; color:#5b6169; margin-bottom:28px;}
.form-success{background:var(--verified); color:var(--white); padding:14px 18px; font-size:0.875rem; margin-bottom:24px; border-radius:2px;}
.pacsun-form .form-row{display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:18px;}
.pacsun-form .field{display:flex; flex-direction:column; gap:8px;}
.pacsun-form .field.full{grid-column:1/-1;}
.pacsun-form label{font-family:var(--font-mono); font-size:0.6875rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-soft);}
.pacsun-form input, .pacsun-form select, .pacsun-form textarea{border:1px solid var(--line); background:var(--paper); padding:12px 14px; font-family:var(--font-body); font-size:0.875rem; color:var(--ink); border-radius:2px; outline:none; width:100%; transition:border-color .2s ease, box-shadow .2s ease;}
.pacsun-form input:focus, .pacsun-form select:focus, .pacsun-form textarea:focus{border-color:var(--steel); box-shadow:0 0 0 3px rgba(31,58,95,0.14);}
.pacsun-form textarea{resize:vertical; min-height:96px;}
.pacsun-form .btn{width:100%; justify-content:center;}

/* blog */
.blog-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:56px;}
.post-card{background:var(--white); border:1px solid var(--line); overflow:hidden; box-shadow:var(--shadow-sm); transition:transform .4s var(--ease), box-shadow .4s var(--ease);}
.post-card:hover{transform:translateY(-8px); box-shadow:var(--shadow-lg);}
.post-card .thumb{aspect-ratio:16/10; background:var(--paper-dim); overflow:hidden;}
.post-card .thumb img{width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease);}
.post-card:hover .thumb img{transform:scale(1.06);}
.post-card .body{padding:22px 24px;}
.post-card .date{font-family:var(--font-mono); font-size:0.6875rem; color:var(--brass); letter-spacing:.08em;}
.post-card h3{font-family:var(--font-display); font-weight:700; font-size:1.25rem; margin:10px 0 8px;}
.post-card p{font-size:0.8438rem; color:#565b63;}
.pagination{margin-top:56px; display:flex; gap:12px; justify-content:center;}
.pagination a, .pagination span{font-family:var(--font-mono); font-size:0.8125rem; padding:8px 14px; border:1px solid var(--line);}

/* footer */
footer.site-footer{background:var(--footer-bg,var(--ink)); color:rgba(250,250,248,0.65); border-top:1px solid var(--line-dark); padding:64px 0 28px;}
.footer-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:40px; padding-bottom:48px;}
.footer-brand .logo-word{color:var(--white); font-size:calc(1.375rem * var(--scale-footer,1));}
.footer-brand p{margin-top:16px; font-size:calc(0.8438rem * var(--scale-footer,1)); max-width:280px; color:rgba(250,250,248,0.5);}
footer h5{font-family:var(--font-mono); font-size:calc(0.6875rem * var(--scale-footer,1)); letter-spacing:.12em; text-transform:uppercase; color:var(--footer-accent,var(--brass-light)); margin-bottom:18px;}
footer ul li{margin-bottom:11px; font-size:calc(0.875rem * var(--scale-footer,1));}
footer ul a:hover{color:var(--white);}
.footer-bottom{border-top:1px solid var(--line-dark); padding-top:24px; display:flex; justify-content:space-between; font-size:0.7812rem; color:rgba(250,250,248,0.4); font-family:var(--font-mono); flex-wrap:wrap; gap:8px;}

/* map */
.map-strip{background:var(--ink); padding:64px 0;}
.map-inner{aspect-ratio:16/5; background:linear-gradient(rgba(18,22,28,0.55), rgba(18,22,28,0.55)), repeating-linear-gradient(45deg, #1F262F 0 2px, transparent 2px 22px); display:flex; align-items:center; justify-content:center; border:1px solid var(--line-dark); position:relative; overflow:hidden;}
.map-inner iframe{position:absolute; inset:0; width:100%; height:100%; border:0;}
.map-inner .pin{text-align:center; color:var(--paper); position:relative; z-index:1;}
.map-inner .pin .dot{width:12px;height:12px;border-radius:50%;background:var(--brass); margin:0 auto 10px; box-shadow:0 0 0 6px rgba(184,134,59,0.2);}
.map-inner .pin span{font-family:var(--font-mono); font-size:0.75rem; letter-spacing:.1em; color:rgba(250,250,248,0.7);}

/* breadcrumbs */
.breadcrumbs{font-family:var(--font-mono); font-size:0.75rem; color:#6b7078; padding:16px 0 0;}
.breadcrumbs a{color:var(--steel);}
.breadcrumbs a:hover{text-decoration:underline;}

/* newsletter */
.newsletter-form{display:flex; gap:10px; margin-top:18px; flex-wrap:wrap;}
.newsletter-form input{flex:1; min-width:180px; border:1px solid var(--line-dark); background:rgba(250,250,248,0.06); color:var(--white); padding:11px 14px; font-family:var(--font-body); font-size:0.8438rem; border-radius:2px;}
.newsletter-form input::placeholder{color:rgba(250,250,248,0.4);}
.newsletter-thanks{color:var(--brass-light); font-family:var(--font-mono); font-size:0.8125rem;}

/* scroll reveal */
.reveal{opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease;}
.reveal.is-visible{opacity:1; transform:none;}

/* staggered card reveal — children fade/lift in sequence once their parent section is visible */
.services-grid > .service-card,
.team-grid > .team-card,
.blog-grid > .post-card,
.values-grid > .value-card,
.process-list > .process-step,
.stat-band .wrap > div{
  opacity:0; transform:translateY(22px);
  transition:opacity .55s var(--ease), transform .55s var(--ease);
}
.reveal.is-visible .services-grid > .service-card,
.reveal.is-visible .team-grid > .team-card,
.reveal.is-visible .blog-grid > .post-card,
.reveal.is-visible .values-grid > .value-card,
.reveal.is-visible .process-list > .process-step,
.reveal.is-visible .stat-band .wrap > div{
  opacity:1; transform:none;
}
.services-grid > .service-card:nth-child(1), .team-grid > .team-card:nth-child(1), .blog-grid > .post-card:nth-child(1), .values-grid > .value-card:nth-child(1), .process-list > .process-step:nth-child(1), .stat-band .wrap > div:nth-child(1){transition-delay:.05s;}
.services-grid > .service-card:nth-child(2), .team-grid > .team-card:nth-child(2), .blog-grid > .post-card:nth-child(2), .values-grid > .value-card:nth-child(2), .process-list > .process-step:nth-child(2), .stat-band .wrap > div:nth-child(2){transition-delay:.14s;}
.services-grid > .service-card:nth-child(3), .team-grid > .team-card:nth-child(3), .blog-grid > .post-card:nth-child(3), .values-grid > .value-card:nth-child(3), .process-list > .process-step:nth-child(3), .stat-band .wrap > div:nth-child(3){transition-delay:.23s;}
.services-grid > .service-card:nth-child(4), .team-grid > .team-card:nth-child(4), .blog-grid > .post-card:nth-child(4), .values-grid > .value-card:nth-child(4), .process-list > .process-step:nth-child(4), .stat-band .wrap > div:nth-child(4){transition-delay:.32s;}
.services-grid > .service-card:nth-child(5), .team-grid > .team-card:nth-child(5), .values-grid > .value-card:nth-child(5){transition-delay:.41s;}
.services-grid > .service-card:nth-child(6), .team-grid > .team-card:nth-child(6), .values-grid > .value-card:nth-child(6){transition-delay:.5s;}

/* whatsapp float + back to top */
.whatsapp-float{
  position:fixed; bottom:24px; right:24px; z-index:80;
  width:56px; height:56px; border-radius:50%; background:var(--white);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 26px -8px rgba(18,22,28,0.4), 0 0 0 0 rgba(37,211,102,0.45);
  transition:transform .25s var(--ease), box-shadow .25s var(--ease);
  animation:pacsun-pulse 2.8s ease-in-out infinite;
}
.whatsapp-float:hover{transform:scale(1.09); animation-play-state:paused;}
@keyframes pacsun-pulse{
  0%{box-shadow:0 10px 26px -8px rgba(18,22,28,0.4), 0 0 0 0 rgba(37,211,102,0.4);}
  70%{box-shadow:0 10px 26px -8px rgba(18,22,28,0.4), 0 0 0 12px rgba(37,211,102,0);}
  100%{box-shadow:0 10px 26px -8px rgba(18,22,28,0.4), 0 0 0 0 rgba(37,211,102,0);}
}
.back-to-top{
  position:fixed; bottom:24px; right:90px; z-index:80;
  width:44px; height:44px; border-radius:50%; border:1px solid var(--line);
  background:var(--grad-ink); color:var(--white); font-size:1.125rem; cursor:pointer;
  display:none; align-items:center; justify-content:center;
  box-shadow:0 10px 26px -8px rgba(18,22,28,0.4); transition:opacity .18s ease, transform .25s var(--ease);
}
.back-to-top:hover{transform:translateY(-3px);}
.back-to-top.visible{display:flex;}

/* cookie notice */
.cookie-notice{
  position:fixed; bottom:0; left:0; right:0; z-index:90;
  background:var(--ink); color:var(--paper);
  padding:18px 24px; display:flex; align-items:center; justify-content:center;
  gap:20px; flex-wrap:wrap; font-size:0.8438rem;
  box-shadow:0 -8px 24px -8px rgba(18,22,28,0.4);
}
.cookie-notice p{margin:0; max-width:600px;}
.cookie-notice[hidden]{display:none;}

/* search */
.search-form{display:flex; gap:10px; margin-top:12px;}
.search-form input[type="search"]{flex:1; border:1px solid var(--line); background:var(--white); padding:12px 14px; font-family:var(--font-body); font-size:0.875rem; border-radius:2px;}
.search-results-count{font-family:var(--font-mono); font-size:0.7812rem; color:#6b7078; margin-bottom:32px;}

/* share buttons */
.share-buttons{display:flex; gap:10px; margin-top:32px; padding-top:24px; border-top:1px solid var(--line); flex-wrap:wrap;}
.share-buttons a{font-family:var(--font-mono); font-size:0.75rem; padding:9px 16px; border:1px solid var(--line); border-radius:2px; transition:background .15s ease;}
.share-buttons a:hover{background:var(--white);}

@media (max-width:980px){
  .hero .wrap{grid-template-columns:1fr;}
  .services-grid, .team-grid, .blog-grid{grid-template-columns:1fr;}
  .service-detail, .service-detail.reverse{grid-template-columns:1fr;}
  .service-detail.reverse .figure{order:0;}
  .process-list{grid-template-columns:1fr 1fr; row-gap:36px;}
  .stat-band .wrap, .accred-grid{grid-template-columns:1fr 1fr; row-gap:28px;}
  .story, .contact-grid{grid-template-columns:1fr;}
  .values-grid{grid-template-columns:1fr 1fr;}
  .tl-row{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .pacsun-form .form-row{grid-template-columns:1fr;}
  nav.primary{display:none; width:100%; order:3;}
  nav.primary.open{display:block;}
  nav.primary ul{flex-direction:column; align-items:flex-start; gap:14px; padding:16px 0;}
  .menu-toggle{display:block;}
  .back-to-top{right:24px; bottom:88px;}
}
