/* ================================================================
   ARQUIDOC WORLD — Main Stylesheet v1.0.0
================================================================ */

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }

:root {
    --black:    #0B0B0B;
    --gold:     #D4AF37;
    --gold-dim: rgba(212,175,55,.12);
    --ivory:    #F7F3EE;
    --gray:     #E6E2DC;
    --charcoal: #222222;
    --white:    #FFFFFF;

    --hero-xl: clamp(44px, 6.2vw, 96px);
    --h1:      clamp(34px, 5vw,   72px);
    --h2:      clamp(26px, 3.5vw, 52px);
    --h3:      clamp(20px, 2.5vw, 36px);
    --h4:      clamp(17px, 2vw,   26px);
    --body-lg: clamp(16px, 1.3vw, 19px);
    --body:    clamp(14px, 1.1vw, 17px);
    --label:   clamp(9px, 0.72vw, 11px);

    --s1:4px; --s2:8px; --s3:16px; --s4:24px; --s5:32px;
    --s6:48px; --s7:64px; --s8:80px; --s9:96px;
    --s10:128px; --s11:160px; --s12:200px; --s13:220px;

    --container: 1380px;
    --ease-lux: cubic-bezier(.25,.46,.45,.94);
    --ease-rev: cubic-bezier(.16,1,.3,1);
}

html { scroll-behavior:smooth; -webkit-font-smoothing:antialiased; overflow-x:hidden; }

body {
    font-family:'Lato',sans-serif;
    font-weight:400;
    color:var(--black);
    background:var(--black);
    cursor:none;
    overflow-x:hidden;
}

img { max-width:100%; height:auto; display:block; }
a   { transition:color .3s; }

/* ── Wrap ────────────────────────────────────────────────────── */
.wrap {
    width:100%; max-width:var(--container);
    margin:0 auto;
    padding:0 clamp(20px,5vw,80px);
}

/* ── Utilities ────────────────────────────────────────────────── */
.gold-line {
    display:block; width:52px; height:1px;
    background:var(--gold); margin-bottom:var(--s4);
}
.eyebrow {
    display:block;
    font-family:'Montserrat',sans-serif;
    font-size:var(--label); font-weight:600;
    letter-spacing:.28em; text-transform:uppercase;
    color:var(--gold); margin-bottom:var(--s3);
}

/* ── Reveal animations ───────────────────────────────────────── */
.rv  { opacity:0; transform:translateY(36px); transition:opacity .95s var(--ease-rev),transform .95s var(--ease-rev); }
.rvl { opacity:0; transform:translateX(-36px);transition:opacity .95s var(--ease-rev),transform .95s var(--ease-rev); }
.rvr { opacity:0; transform:translateX(36px); transition:opacity .95s var(--ease-rev),transform .95s var(--ease-rev); }
.rv.on,.rvl.on,.rvr.on { opacity:1; transform:none; }
.d1{transition-delay:.1s}  .d2{transition-delay:.22s}
.d3{transition-delay:.36s} .d4{transition-delay:.52s} .d5{transition-delay:.68s}

/* ── Image placeholder ──────────────────────────────────────── */
.img-ph {
    position:absolute; inset:0;
    display:flex; align-items:center; justify-content:center;
}
.img-ph span {
    font-family:'Montserrat',sans-serif; font-size:8.5px;
    letter-spacing:.32em; text-transform:uppercase;
    color:rgba(212,175,55,.18);
}

/* ── Buttons ────────────────────────────────────────────────── */
.btn-p {
    font-family:'Montserrat',sans-serif; font-size:10.5px; font-weight:600;
    letter-spacing:.22em; text-transform:uppercase;
    color:var(--black); background:var(--gold);
    padding:17px 42px; text-decoration:none; display:inline-block;
    position:relative; overflow:hidden; transition:color .4s var(--ease-lux);
}
.btn-p::before {
    content:''; position:absolute; inset:0; background:var(--black);
    transform:translateX(-101%); transition:transform .5s var(--ease-lux);
}
.btn-p:hover { color:var(--gold); }
.btn-p:hover::before { transform:translateX(0); }
.btn-p span { position:relative; z-index:1; }

.btn-s {
    font-family:'Montserrat',sans-serif; font-size:10.5px; font-weight:600;
    letter-spacing:.22em; text-transform:uppercase;
    color:rgba(255,255,255,.75); background:transparent;
    padding:16px 40px; border:1px solid rgba(255,255,255,.25);
    text-decoration:none; display:inline-block;
    transition:border-color .3s,color .3s;
}
.btn-s:hover { border-color:var(--gold); color:var(--gold); }

/* ── Link arrow ─────────────────────────────────────────────── */
.link-arrow {
    font-family:'Montserrat',sans-serif; font-size:10.5px; font-weight:600;
    letter-spacing:.22em; text-transform:uppercase; color:var(--gold);
    text-decoration:none; display:flex; align-items:center;
    gap:14px; white-space:nowrap; transition:gap .4s var(--ease-lux);
}
.link-arrow::after {
    content:''; display:block; width:38px; height:1px;
    background:var(--gold); transition:width .4s var(--ease-lux);
}
.link-arrow:hover { gap:22px; }
.link-arrow:hover::after { width:62px; }
.link-arrow-dark { color:var(--black) !important; }
.link-arrow-dark::after { background:var(--black) !important; }

/* ================================================================
   PAGE LOADER
================================================================ */
.loader {
    position:fixed; inset:0; background:var(--black); z-index:9998;
    display:flex; flex-direction:column; align-items:center;
    justify-content:center; gap:var(--s4);
    transition:opacity .7s var(--ease-lux),visibility .7s;
}
.loader.out { opacity:0; visibility:hidden; pointer-events:none; }
.loader-name {
    font-family:'Montserrat',sans-serif; font-weight:700;
    font-size:20px; letter-spacing:.16em; color:var(--white);
    opacity:0; animation:fi .5s ease .3s forwards;
}
.loader-sub {
    font-family:'Lato',sans-serif; font-size:9px;
    letter-spacing:.42em; text-transform:uppercase; color:var(--gold);
    opacity:0; animation:fi .5s ease .55s forwards;
}
.loader-ecg {
    width:260px; height:28px;
    opacity:0; animation:fi .4s ease .3s forwards;
}
.loader-ecg svg { width:100%; height:100%; overflow:visible; }
.loader-ecg-path {
    fill:none; stroke:var(--gold); stroke-width:1.2;
    stroke-linecap:round; stroke-linejoin:round;
    stroke-dasharray: 900;
    stroke-dashoffset: 900;
    animation: loader-draw 1.9s cubic-bezier(.3,0,.5,1) .3s forwards;
}
@keyframes loader-draw {
    0%   { stroke-dashoffset: 900; }
    100% { stroke-dashoffset: 0;   }
}
@keyframes fi  { from{opacity:0} to{opacity:1} }
@keyframes fiu { from{opacity:0;transform:translateY(36px)} to{opacity:1;transform:none} }

/* ================================================================
   CUSTOM CURSOR
================================================================ */
.cur {
    position:fixed; width:7px; height:7px;
    background:var(--gold); border-radius:50%;
    pointer-events:none; z-index:10000;
    transform:translate(-50%,-50%);
    transition:width .3s,height .3s;
    mix-blend-mode:difference;
}
.cur-ring {
    position:fixed; width:36px; height:36px;
    border:1px solid rgba(212,175,55,.45); border-radius:50%;
    pointer-events:none; z-index:9999;
    transform:translate(-50%,-50%);
    transition:width .4s var(--ease-lux),height .4s var(--ease-lux),border-color .3s;
}
.cur-ring.hov { width:64px; height:64px; border-color:var(--gold); }

/* ================================================================
   NAVIGATION
================================================================ */
.nav {
    position:fixed; top:0; left:0; right:0; z-index:1000;
    height:88px; display:flex; align-items:center;
    background:rgba(11,11,11,.72);
    backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
    transition:background .6s var(--ease-lux),backdrop-filter .6s,box-shadow .6s;
}
.nav.stuck {
    background:rgba(11,11,11,.96);
    backdrop-filter:blur(22px); -webkit-backdrop-filter:blur(22px);
    box-shadow:0 1px 0 rgba(212,175,55,.12);
}
.nav-inner { display:flex; align-items:center; justify-content:space-between; width:100%; }

.nav-logo { text-decoration:none; line-height:1; }
.nav-logo-main {
    display:block; font-family:'Montserrat',sans-serif; font-weight:700;
    font-size:17px; letter-spacing:.13em; color:var(--white);
}
.nav-logo-sub {
    display:block; font-family:'Lato',sans-serif; font-weight:300;
    font-size:8.5px; letter-spacing:.38em; color:var(--gold);
    text-transform:uppercase; margin-top:4px;
}
/* WP custom logo */
.custom-logo { height:44px; width:auto; display:block; }

.nav-links { display:flex; align-items:center; gap:var(--s7); list-style:none; }
.nav-links a {
    font-family:'Montserrat',sans-serif; font-size:10.5px;
    font-weight:600; letter-spacing:.2em; text-transform:uppercase;
    color:rgba(255,255,255,.7); text-decoration:none;
    position:relative; transition:color .3s;
}
.nav-links a::after {
    content:''; position:absolute; bottom:-4px; left:0;
    width:0; height:1px; background:var(--gold);
    transition:width .5s var(--ease-lux);
}
.nav-links a:hover { color:var(--white); }
.nav-links a:hover::after { width:100%; }

.nav-cta {
    font-family:'Montserrat',sans-serif; font-size:10.5px; font-weight:600;
    letter-spacing:.2em; text-transform:uppercase;
    color:var(--black) !important; background:var(--gold);
    padding:13px 30px; text-decoration:none; transition:background .3s;
}
.nav-cta:hover { background:#c4a030; }

.nav-burger {
    display:none; flex-direction:column; gap:5px;
    cursor:pointer; padding:8px; background:none; border:none;
}
.nav-burger span { display:block; width:24px; height:1px; background:var(--white); transition:.3s; }

/* Mobile overlay */
.nav-mobile {
    display:none; position:fixed; inset:0; background:var(--black); z-index:999;
    flex-direction:column; align-items:center; justify-content:center; gap:var(--s5);
    opacity:0; pointer-events:none; transition:opacity .5s var(--ease-lux);
}
.nav-mobile.open { opacity:1; pointer-events:all; }
.nav-mobile a {
    font-family:'Montserrat',sans-serif; font-size:clamp(24px,5vw,40px);
    font-weight:700; letter-spacing:.1em; text-transform:uppercase;
    color:var(--white); text-decoration:none; transition:color .3s;
}
.nav-mobile a:hover { color:var(--gold); }
.nav-mobile-close {
    position:absolute; top:28px; right:28px;
    background:none; border:none; cursor:pointer;
    font-family:'Lato',sans-serif; font-size:11px; letter-spacing:.3em;
    text-transform:uppercase; color:rgba(255,255,255,.45);
}

/* ================================================================
   HERO
================================================================ */
.hero {
    position:relative; height:100vh; min-height:700px;
    display:flex; flex-direction:column; justify-content:center;
    overflow:hidden; background:var(--black);
    padding-top:88px; padding-bottom:100px;
}
.hero-bg {
    position:absolute; inset:0;
    background:linear-gradient(160deg,#0e0e0e 0%,#181818 40%,#0a0a0a 100%);
}
.hero-grid {
    position:absolute; inset:0; opacity:.04;
    background-image:
        linear-gradient(rgba(212,175,55,1) 1px,transparent 1px),
        linear-gradient(90deg,rgba(212,175,55,1) 1px,transparent 1px);
    background-size:72px 72px;
}
.hero-panel {
    position:absolute; right:0; top:0; width:52%; height:100%; overflow:hidden;
}
.hero-panel::after {
    content:''; position:absolute; inset:0; z-index:2;
    background:linear-gradient(to right, rgba(11,11,11,1) 0%, rgba(11,11,11,.55) 30%, rgba(11,11,11,.0) 70%);
}
.hero-panel-inner {
    position:absolute; inset:0; background:linear-gradient(135deg,#161616,#0d0d0d);
}
.hero-panel-lines { position:absolute; inset:0; }
.hero-ov {
    position:absolute; inset:0;
    background:linear-gradient(to top,rgba(11,11,11,.97) 0%,rgba(11,11,11,.55) 45%,rgba(11,11,11,.12) 100%);
}
/* ECG heartbeat — inline, below subtitle */
.hero-ecg {
    width:100%; max-width:380px; height:38px;
    margin-top:0; margin-bottom:var(--s6);
    opacity:0; animation:fi .8s var(--ease-rev) 1.1s forwards;
    overflow:hidden;
}
.hero-ecg svg { width:200%; height:100%; display:block; }
.ecg-path {
    fill:none; stroke:rgba(212,175,55,.55); stroke-width:1.4;
    stroke-linecap:round; stroke-linejoin:round;
    stroke-dasharray: 520 3600;
    stroke-dashoffset: 4120;
    animation: ecg-pulse 2.6s linear infinite;
}
@keyframes ecg-pulse {
    0%   { stroke-dashoffset: 4120; }
    100% { stroke-dashoffset: 0; }
}

.hero-content { position:relative; z-index:10; max-width:660px; }

.hero-location {
    font-family:'Montserrat',sans-serif; font-size:9px;
    font-weight:600; letter-spacing:.42em; text-transform:uppercase;
    color:rgba(212,175,55,.7); margin-bottom:var(--s6);
    display:flex; align-items:center; gap:var(--s4);
    opacity:0; animation:fiu .9s var(--ease-rev) .3s forwards;
}
.hero-location::before { content:''; display:block; width:28px; height:1px; background:rgba(212,175,55,.5); flex-shrink:0; }

.hero-h1 {
    display:flex; flex-direction:column; gap:0;
    margin-bottom:var(--s5);
    opacity:0; animation:fiu 1s var(--ease-rev) .5s forwards;
}
.hero-h1-a {
    font-family:'Playfair Display',serif; font-weight:400; font-style:italic;
    font-size:clamp(48px,6.8vw,104px); line-height:1.05;
    color:rgba(255,255,255,.92); letter-spacing:-.02em;
    display:block;
}
.hero-h1-b {
    font-family:'Montserrat',sans-serif; font-weight:800;
    font-size:clamp(46px,5.6vw,88px); line-height:1.0;
    color:var(--gold); letter-spacing:-.03em; text-transform:uppercase;
    display:block; white-space:nowrap;
}

.hero-rule {
    width:52px; height:1px; background:rgba(212,175,55,.45);
    margin-bottom:var(--s5);
    opacity:0; animation:fiu .8s var(--ease-rev) .72s forwards;
}

.hero-sub {
    font-family:'Lato',sans-serif; font-size:clamp(14px,1.1vw,17px); font-weight:300;
    line-height:2.0; color:rgba(255,255,255,.45); max-width:400px; margin-bottom:var(--s7);
    opacity:0; animation:fiu 1s var(--ease-rev) .88s forwards;
}
.hero-btns {
    display:flex; align-items:center; gap:var(--s4); flex-wrap:wrap;
    opacity:0; animation:fiu 1s var(--ease-rev) 1.05s forwards;
}
.hero-scroll {
    position:absolute; bottom:36px; left:50%; transform:translateX(-50%);
    display:flex; flex-direction:column; align-items:center; gap:8px; z-index:10;
    opacity:0; animation:fi 1s var(--ease-rev) 1.8s forwards;
}
.hero-scroll span {
    font-family:'Montserrat',sans-serif; font-size:8.5px;
    letter-spacing:.35em; text-transform:uppercase; color:rgba(255,255,255,.3);
}
.scroll-bar {
    width:1px; height:48px;
    background:linear-gradient(to bottom,rgba(212,175,55,.8),transparent);
    animation:pulse 2.2s ease-in-out infinite 2s;
}
@keyframes pulse { 0%,100%{opacity:1;transform:scaleY(1)} 50%{opacity:.25;transform:scaleY(.6)} }

/* ================================================================
   PHILOSOPHY
================================================================ */
.philosophy { background:var(--ivory); padding:var(--s13) 0; overflow:hidden; }
.philosophy-inner {
    display:grid; grid-template-columns:1fr 1fr;
    gap:clamp(60px,8vw,160px); align-items:center;
}
.philosophy-h2 {
    font-family:'Playfair Display',serif; font-size:var(--h1);
    font-weight:400; line-height:1.18; color:var(--black);
    letter-spacing:-.01em; margin-bottom:var(--s5);
}
.philosophy-h2 em { font-style:italic; }
.philosophy-body {
    font-family:'Lato',sans-serif; font-size:var(--body-lg);
    font-weight:300; line-height:1.88; color:rgba(34,34,34,.72);
    margin-bottom:var(--s5); max-width:460px;
}
.philosophy-quote {
    font-family:'Playfair Display',serif; font-size:var(--h4);
    font-style:italic; font-weight:400; line-height:1.55;
    color:var(--charcoal); border-left:2px solid var(--gold);
    padding-left:var(--s4); margin-top:var(--s7);
}
.philosophy-visual { position:relative; height:640px; }
.phil-img-a {
    position:absolute; top:0; right:0; width:84%; height:84%;
    background:linear-gradient(145deg,#1a1a1a,#2a2a2a); overflow:hidden;
}
.phil-img-a::before {
    content:''; position:absolute; inset:0; opacity:.04;
    background-image:
        repeating-linear-gradient(45deg,rgba(212,175,55,1) 0,rgba(212,175,55,1) 1px,transparent 1px,transparent 42px),
        repeating-linear-gradient(-45deg,rgba(212,175,55,1) 0,rgba(212,175,55,1) 1px,transparent 1px,transparent 42px);
}
.phil-img-b {
    position:absolute; bottom:0; left:0; width:52%; height:44%;
    background:linear-gradient(145deg,#2a2a2a,#1a1a1a); border:3px solid var(--ivory);
}
.phil-accent {
    position:absolute; bottom:44px; right:-16px;
    width:110px; height:1px; background:var(--gold);
}

/* ================================================================
   ABOUT
================================================================ */
.about { background:var(--charcoal); padding:var(--s13) 0; overflow:hidden; }
.about-inner { display:grid; grid-template-columns:1fr 1fr; gap:clamp(60px,8vw,160px); align-items:center; }
.about-portrait { position:relative; height:640px; }
.about-frame {
    position:absolute; top:0; left:0; width:80%; height:88%;
    background:linear-gradient(155deg,#2a2a2a,#1a1a1a); overflow:hidden;
}
.about-frame::after {
    content:''; position:absolute; bottom:0; left:0; right:0; height:40%;
    background:linear-gradient(to top,rgba(34,34,34,.6),transparent);
}
.about-border {
    position:absolute; bottom:28px; right:-28px; width:68%; height:78%;
    border:1px solid rgba(212,175,55,.25);
}
.about-label { position:absolute; bottom:18px; left:18px; z-index:10; }
.about-label strong {
    display:block; font-family:'Montserrat',sans-serif; font-size:11px;
    font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--gold);
}
.about-label small {
    display:block; font-family:'Lato',sans-serif; font-size:12px;
    font-weight:300; color:rgba(255,255,255,.45); margin-top:3px;
}
.about-h2 {
    font-family:'Playfair Display',serif; font-size:var(--h1);
    font-weight:400; line-height:1.18; color:var(--white); margin-bottom:var(--s5);
}
.about-h2 em { font-style:italic; color:var(--gold); }
.about-body {
    font-family:'Lato',sans-serif; font-size:var(--body-lg); font-weight:300;
    line-height:1.88; color:rgba(255,255,255,.58); margin-bottom:var(--s4);
}
.about-creds { display:grid; grid-template-columns:1fr 1fr; gap:var(--s2); margin-top:var(--s7); }
.cred { padding:var(--s4); border:1px solid rgba(212,175,55,.18); }
.cred-title {
    font-family:'Montserrat',sans-serif; font-size:9.5px; font-weight:600;
    letter-spacing:.2em; text-transform:uppercase; color:var(--gold); margin-bottom:6px;
}
.cred-body {
    font-family:'Lato',sans-serif; font-size:13px; font-weight:300;
    line-height:1.65; color:rgba(255,255,255,.45);
}

/* ================================================================
   SERVICES
================================================================ */
.services { background:var(--ivory); padding:var(--s13) 0; }
.services-head {
    display:grid; grid-template-columns:1fr 1fr; gap:var(--s7);
    align-items:flex-end; margin-bottom:var(--s11);
}
.services-h2 {
    font-family:'Playfair Display',serif; font-size:var(--h1);
    font-weight:400; line-height:1.15; color:var(--black);
}
.services-intro {
    font-family:'Lato',sans-serif; font-size:var(--body-lg);
    font-weight:300; line-height:1.82; color:rgba(34,34,34,.6); max-width:380px;
}
.services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(34,34,34,.1); }
.svc {
    background:var(--ivory); padding:var(--s8) var(--s6);
    position:relative; overflow:hidden; cursor:pointer; min-height:290px;
}
.svc::before {
    content:''; position:absolute; inset:0; background:var(--black);
    transform:scaleY(0); transform-origin:bottom; transition:transform .6s var(--ease-lux);
}
.svc:hover::before { transform:scaleY(1); }
.svc-inner { position:relative; z-index:1; }
.svc:hover .svc-num  { color:rgba(212,175,55,.2); }
.svc:hover .svc-line { background:var(--gold); }
.svc:hover .svc-title,.svc:hover .svc-body { color:var(--white); }
.svc-num {
    font-family:'Montserrat',sans-serif; font-size:clamp(42px,5vw,72px);
    font-weight:700; color:rgba(34,34,34,.07); line-height:1;
    margin-bottom:var(--s5); transition:color .5s;
}
.svc-line { width:38px; height:1px; background:var(--black); margin-bottom:var(--s3); transition:background .5s; }
.svc-title {
    font-family:'Montserrat',sans-serif; font-size:var(--h4); font-weight:600;
    color:var(--black); margin-bottom:var(--s2); transition:color .5s;
}
.svc-body {
    font-family:'Lato',sans-serif; font-size:14px; font-weight:300;
    line-height:1.72; color:rgba(34,34,34,.58); transition:color .5s;
}
.svc-arrow {
    position:absolute; bottom:var(--s5); right:var(--s5);
    width:34px; height:34px; border:1px solid rgba(34,34,34,.2);
    display:flex; align-items:center; justify-content:center;
    transition:border-color .3s,transform .4s var(--ease-lux); text-decoration:none;
    color:rgba(34,34,34,.5);
}
.svc:hover .svc-arrow { border-color:var(--gold); transform:rotate(45deg); color:var(--gold); }
.svc-arrow svg { width:13px; height:13px; }

/* ================================================================
   PORTFOLIO
================================================================ */
.portfolio { background:var(--black); padding:var(--s13) 0; }
.port-head { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:var(--s11); }
.port-h2 { font-family:'Playfair Display',serif; font-size:var(--h1); font-weight:400; color:var(--white); line-height:1.15; }
.port-h2 em { font-style:italic; color:var(--gold); }
.port-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:var(--s2); }
.pc { position:relative; overflow:hidden; background:var(--charcoal); cursor:pointer; }
.pc:nth-child(1){grid-column:1/8;  grid-row:1; height:500px;}
.pc:nth-child(2){grid-column:8/13; grid-row:1; height:500px;}
.pc:nth-child(3){grid-column:1/5;  grid-row:2; height:370px;}
.pc:nth-child(4){grid-column:5/9;  grid-row:2; height:370px;}
.pc:nth-child(5){grid-column:9/13; grid-row:2; height:370px;}
.pc-bg { position:absolute; inset:0; transition:transform .9s var(--ease-lux); background-size:cover!important; background-position:center!important; }
.pc:hover .pc-bg { transform:scale(1.06); }
.pc-pat {
    position:absolute; inset:0; opacity:.03;
    background-image:linear-gradient(rgba(212,175,55,1) 1px,transparent 1px),linear-gradient(90deg,rgba(212,175,55,1) 1px,transparent 1px);
    background-size:38px 38px;
}
.pc-ov { position:absolute; inset:0; background:linear-gradient(to top,rgba(11,11,11,.94) 0%,rgba(11,11,11,.18) 55%,transparent 100%); }
.pc-info {
    position:absolute; bottom:0; left:0; right:0; padding:var(--s5); z-index:2;
    transform:translateY(18px); transition:transform .5s var(--ease-lux);
}
.pc:hover .pc-info { transform:none; }
.pc-cat { font-family:'Montserrat',sans-serif; font-size:9px; font-weight:600; letter-spacing:.28em; text-transform:uppercase; color:var(--gold); display:block; margin-bottom:5px; }
.pc-title { font-family:'Montserrat',sans-serif; font-size:var(--h4); font-weight:600; color:var(--white); line-height:1.35; }
.pc-loc {
    font-family:'Lato',sans-serif; font-size:13px; font-weight:300;
    color:rgba(255,255,255,.45); display:block; margin-top:5px;
    opacity:0; transition:opacity .4s var(--ease-lux) .1s;
}
.pc:hover .pc-loc { opacity:1; }

/* ================================================================
   IMPACT
================================================================ */
.impact { background:var(--ivory); padding:var(--s13) 0; }
.impact-inner { display:grid; grid-template-columns:1fr 1fr; gap:clamp(60px,8vw,160px); align-items:center; }
.impact-h2 {
    font-family:'Playfair Display',serif; font-size:var(--h1);
    font-weight:400; line-height:1.18; color:var(--black); margin-bottom:var(--s4);
}
.impact-body {
    font-family:'Lato',sans-serif; font-size:var(--body-lg);
    font-weight:300; line-height:1.82; color:rgba(34,34,34,.65);
}
.metrics { display:grid; grid-template-columns:1fr 1fr; gap:var(--s2); }
.met { background:var(--white); padding:var(--s8) var(--s5); position:relative; overflow:hidden; }
.met::before {
    content:''; position:absolute; top:0; left:0; width:2px; height:0;
    background:var(--gold); transition:height .9s var(--ease-rev);
}
.met.on::before { height:100%; }
.met-num {
    font-family:'Montserrat',sans-serif; font-size:clamp(38px,5vw,66px);
    font-weight:700; color:var(--black); line-height:1; margin-bottom:6px;
}
.met-suf { font-size:.55em; color:var(--gold); font-weight:600; }
.met-label {
    font-family:'Lato',sans-serif; font-size:12.5px; font-weight:400;
    letter-spacing:.06em; color:rgba(34,34,34,.5); text-transform:uppercase;
}

/* ================================================================
   TESTIMONIALS
================================================================ */
.testimonials { background:var(--black); padding:var(--s13) 0; }
.test-inner { display:grid; grid-template-columns:260px 1fr; gap:clamp(60px,8vw,160px); align-items:start; }
.test-h2 {
    font-family:'Playfair Display',serif; font-size:var(--h2);
    font-weight:400; color:var(--white); line-height:1.3;
    position:sticky; top:110px;
}
.test-list { display:flex; flex-direction:column; gap:var(--s5); }
.tcard { padding:var(--s7); border:1px solid rgba(255,255,255,.07); transition:border-color .5s; }
.tcard:hover { border-color:rgba(212,175,55,.28); }
.tcard-qm {
    font-family:'Playfair Display',serif; font-size:72px; line-height:.5;
    color:var(--gold); opacity:.28; display:block; margin-bottom:var(--s3);
}
.tcard-body {
    font-family:'Playfair Display',serif; font-size:var(--h4);
    font-style:italic; font-weight:400; line-height:1.72;
    color:rgba(255,255,255,.72); margin-bottom:var(--s5);
}
.tcard-author { display:flex; align-items:center; gap:var(--s3); }
.tcard-av { width:42px; height:42px; background:var(--charcoal); flex-shrink:0; overflow:hidden; }
.tcard-name {
    font-family:'Montserrat',sans-serif; font-size:11px; font-weight:600;
    letter-spacing:.12em; text-transform:uppercase; color:var(--white);
}
.tcard-role { font-family:'Lato',sans-serif; font-size:12px; font-weight:300; color:rgba(255,255,255,.38); margin-top:2px; }

/* ================================================================
   JOURNAL
================================================================ */
.journal { background:var(--ivory); padding:var(--s13) 0; }
.journal-head { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:var(--s11); }
.journal-h2 { font-family:'Playfair Display',serif; font-size:var(--h1); font-weight:400; color:var(--black); }
.journal-grid { display:grid; grid-template-columns:7fr 5fr; grid-template-rows:1fr 1fr; gap:var(--s2); }
.art { background:var(--white); overflow:hidden; cursor:pointer; }
.art:nth-child(1){ grid-column:1; grid-row:1/3; }
.art:nth-child(2){ grid-column:2; grid-row:1; }
.art:nth-child(3){ grid-column:2; grid-row:2; }
.art-vis { height:220px; overflow:hidden; position:relative; }
.art:nth-child(1) .art-vis { height:300px; }
.art-vis-inner { position:absolute; inset:0; transition:transform .9s var(--ease-lux); }
.art:hover .art-vis-inner { transform:scale(1.06); }
.art-content { padding:var(--s5); }
.art-meta { display:flex; align-items:center; gap:var(--s3); margin-bottom:var(--s2); }
.art-cat { font-family:'Montserrat',sans-serif; font-size:8.5px; font-weight:600; letter-spacing:.28em; text-transform:uppercase; color:var(--gold); }
.art-date { font-family:'Lato',sans-serif; font-size:11px; color:rgba(34,34,34,.4); }
.art-title { font-family:'Playfair Display',serif; font-size:var(--h4); font-weight:600; line-height:1.4; color:var(--black); margin-bottom:var(--s2); }
.art:nth-child(1) .art-title { font-size:var(--h3); }
.art-excerpt { font-family:'Lato',sans-serif; font-size:13.5px; font-weight:300; line-height:1.72; color:rgba(34,34,34,.58); }

/* ================================================================
   CONTACT
================================================================ */
.contact { background:var(--black); padding:var(--s13) 0; }
.contact-inner { display:grid; grid-template-columns:1fr 1fr; gap:clamp(60px,8vw,160px); align-items:start; }
.contact-h2 {
    font-family:'Playfair Display',serif; font-size:var(--h1);
    font-weight:400; line-height:1.15; color:var(--white); margin-bottom:var(--s5);
}
.contact-h2 em { font-style:italic; color:var(--gold); }
.contact-body {
    font-family:'Lato',sans-serif; font-size:var(--body-lg);
    font-weight:300; line-height:1.82; color:rgba(255,255,255,.52); margin-bottom:var(--s7);
}
.contact-info { display:flex; flex-direction:column; gap:var(--s4); }
.ci { display:flex; align-items:flex-start; gap:var(--s3); }
.ci-label {
    font-family:'Montserrat',sans-serif; font-size:9.5px; font-weight:600;
    letter-spacing:.22em; text-transform:uppercase; color:var(--gold);
    min-width:72px; padding-top:2px;
}
.ci-val { font-family:'Lato',sans-serif; font-size:15px; font-weight:300; color:rgba(255,255,255,.55); }

.fld { margin-bottom:var(--s4); }
.fld label {
    display:block; font-family:'Montserrat',sans-serif; font-size:9.5px;
    font-weight:600; letter-spacing:.22em; text-transform:uppercase;
    color:rgba(255,255,255,.35); margin-bottom:10px;
}
.fld input,.fld textarea,.fld select {
    width:100%; background:transparent; border:none;
    border-bottom:1px solid rgba(255,255,255,.14);
    padding:11px 0; font-family:'Lato',sans-serif; font-size:16px; font-weight:300;
    color:var(--white); outline:none; -webkit-appearance:none;
    transition:border-color .3s;
}
.fld input:focus,.fld textarea:focus { border-bottom-color:var(--gold); }
.fld textarea { resize:none; height:76px; }
.fld select option { background:var(--charcoal); }
.fld input::placeholder,.fld textarea::placeholder { color:rgba(255,255,255,.2); }

.btn-sub {
    margin-top:var(--s7);
    font-family:'Montserrat',sans-serif; font-size:10.5px; font-weight:600;
    letter-spacing:.22em; text-transform:uppercase;
    color:var(--black); background:var(--gold);
    border:none; padding:17px 48px; cursor:pointer;
    position:relative; overflow:hidden; transition:color .4s var(--ease-lux);
}
.btn-sub::before {
    content:''; position:absolute; inset:0; background:var(--black);
    transform:translateX(-101%); transition:transform .5s var(--ease-lux);
}
.btn-sub:hover { color:var(--gold); }
.btn-sub:hover::before { transform:translateX(0); }
.btn-sub span { position:relative; z-index:1; }
.btn-sub:disabled { opacity:.5; cursor:default; }

/* ================================================================
   FOOTER
================================================================ */
.footer { background:var(--black); border-top:1px solid rgba(255,255,255,.06); padding:var(--s9) 0 var(--s7); }
.foot-inner { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:var(--s7); margin-bottom:var(--s9); }
.foot-logo-main {
    display:block; font-family:'Montserrat',sans-serif; font-weight:700;
    font-size:17px; letter-spacing:.13em; color:var(--white); margin-bottom:5px;
}
.foot-logo-sub {
    display:block; font-family:'Lato',sans-serif; font-size:8.5px;
    letter-spacing:.38em; color:var(--gold); text-transform:uppercase; margin-bottom:var(--s4);
}
.foot-tagline {
    font-family:'Lato',sans-serif; font-size:13px; font-weight:300;
    line-height:1.72; color:rgba(255,255,255,.32); max-width:260px;
}
.foot-col-title {
    font-family:'Montserrat',sans-serif; font-size:9.5px; font-weight:600;
    letter-spacing:.22em; text-transform:uppercase; color:rgba(255,255,255,.3); margin-bottom:var(--s4);
}
.foot-links { list-style:none; display:flex; flex-direction:column; gap:11px; }
.foot-links a {
    font-family:'Lato',sans-serif; font-size:13.5px; font-weight:300;
    color:rgba(255,255,255,.48); text-decoration:none; transition:color .3s;
}
.foot-links a:hover { color:var(--gold); }
.foot-bottom {
    display:flex; justify-content:space-between; align-items:center;
    padding-top:var(--s5); border-top:1px solid rgba(255,255,255,.06);
}
.foot-copy { font-family:'Lato',sans-serif; font-size:12px; font-weight:300; color:rgba(255,255,255,.22); }
.foot-socials { display:flex; gap:var(--s2); }
.fsoc {
    width:36px; height:36px; border:1px solid rgba(255,255,255,.1);
    display:flex; align-items:center; justify-content:center;
    text-decoration:none; transition:border-color .3s,background .3s;
    color:rgba(255,255,255,.38);
}
.fsoc:hover { border-color:var(--gold); background:rgba(212,175,55,.07); color:var(--gold); }
.fsoc svg { width:13px; height:13px; }

/* ================================================================
   RESPONSIVE
================================================================ */
@media(max-width:1100px){
    .port-grid { grid-template-columns:1fr 1fr; }
    .pc:nth-child(1){grid-column:1;  grid-row:1; height:340px;}
    .pc:nth-child(2){grid-column:2;  grid-row:1; height:340px;}
    .pc:nth-child(3){grid-column:1;  grid-row:2; height:300px;}
    .pc:nth-child(4){grid-column:2;  grid-row:2; height:300px;}
    .pc:nth-child(5){grid-column:1/3;grid-row:3; height:260px;}
    .foot-inner { grid-template-columns:1fr 1fr; }
}

@media(max-width:880px){
    .nav-links,.nav-cta { display:none; }
    .nav-burger          { display:flex; }
    .nav-mobile          { display:flex; }
    .philosophy-inner,.about-inner,.impact-inner,.contact-inner { grid-template-columns:1fr; }
    .about-portrait  { height:400px; }
    .philosophy-visual { height:380px; }
    .services-head   { grid-template-columns:1fr; }
    .services-grid   { grid-template-columns:1fr 1fr; }
    .port-grid       { grid-template-columns:1fr; }
    .pc:nth-child(n) { grid-column:1; grid-row:auto; height:260px; }
    .metrics         { grid-template-columns:1fr 1fr; }
    .test-inner      { grid-template-columns:1fr; }
    .test-h2         { position:static; }
    .journal-grid    { grid-template-columns:1fr; }
    .art:nth-child(n){ grid-column:1; grid-row:auto; }
    .foot-inner      { grid-template-columns:1fr; }
}

@media(max-width:560px){
    .services-grid   { grid-template-columns:1fr; }
    .hero-btns       { flex-direction:column; align-items:flex-start; }
    .btn-p,.btn-s    { width:100%; text-align:center; }
    .about-creds     { grid-template-columns:1fr; }
    .tcard           { padding:var(--s5); }
}

/* ================================================================
   WORDPRESS ENTRY CONTENT STYLES
================================================================ */
.entry-content h2 { font-family:'Playfair Display',serif; font-size:var(--h2); margin:2em 0 .8em; }
.entry-content h3 { font-family:'Playfair Display',serif; font-size:var(--h3); margin:1.8em 0 .7em; }
.entry-content p  { margin-bottom:1.6em; }
.entry-content a  { color:var(--gold); }
.entry-content ul,.entry-content ol { padding-left:1.5em; margin-bottom:1.6em; }
.entry-content li { margin-bottom:.5em; }
.entry-content blockquote {
    border-left:2px solid var(--gold); padding-left:1.5em;
    font-family:'Playfair Display',serif; font-style:italic;
    font-size:var(--h4); color:rgba(255,255,255,.6); margin:2em 0;
}

/* WP page navigation */
.nav-links { gap:var(--s3); }
.page-numbers { font-family:'Montserrat',sans-serif; font-size:11px; letter-spacing:.1em; color:rgba(34,34,34,.5); }
.page-numbers.current { color:var(--gold); }

/* Blog-wrap link-arrow override */
.blog-wrap .link-arrow { color:var(--black); }
.blog-wrap .link-arrow::after { background:var(--black); }
