/* genesistaxhouse.com v2 — light look, logo red, Archivo headings, Courier Prime only where a typed form would have it */
:root{
  color-scheme:light;
  --bg:#FFFFFF; --bg2:#F6F4F1; --paper:#FBF8F0; --paper-line:#E6DFCF;
  --ink:#17171A; --ink2:#2F2F35; --muted:#5F5F67; --line:#E2DFDA;
  --red:#C0202A; --red-d:#A11A23; --red-t:#B01C26;
  --dark:#17171A; --on-dark:#F4F4F5; --on-dark-m:#ABABB3; --dark-line:#2E2E35;
  --display:"Archivo","Arial Black","Helvetica Neue",Arial,sans-serif;
  --sans:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --type:"Courier Prime","Courier New",Courier,monospace;
  --wrap:1180px; --bar:0px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;padding-bottom:var(--bar)}
img{max-width:100%}
[hidden]{display:none!important}
a{color:inherit}
:focus-visible{outline:3px solid var(--red);outline-offset:3px;border-radius:4px}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:clamp(16px,4vw,40px)}
h1,h2,h3{margin:0;text-wrap:balance}
p{margin:0}
h2{font-family:var(--display);font-stretch:112%;font-weight:750;font-size:clamp(1.6rem,3.2vw,2.3rem);line-height:1.1;letter-spacing:-.012em}
h3{font-size:1.06rem;font-weight:600;line-height:1.3}
.lede{color:var(--muted);font-size:1.08rem;max-width:64ch}
section{padding-block:clamp(44px,6.5vw,84px)}
.alt{background:var(--bg2);border-block:1px solid var(--line)}
.sec-h{display:grid;gap:12px;margin-bottom:clamp(22px,3.5vw,38px);max-width:760px}
.typed-no{font-family:var(--type);font-size:.95rem;color:var(--ink2)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:600 .95rem var(--sans);text-decoration:none;border-radius:8px;padding:13px 20px;border:1px solid transparent;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s}
.btn-red{background:var(--red);color:#fff}
.btn-red:hover{background:var(--red-d)}
.btn-ink{border-color:var(--ink);color:var(--ink);background:transparent}
.btn-ink:hover{background:var(--ink);color:#fff}
.btn-line{border-color:var(--line);color:var(--ink);background:#fff}
.btn-line:hover{border-color:var(--muted)}
.btn-white{background:#fff;color:var(--ink)}
.wa-dot{width:10px;height:10px;border-radius:50%;background:#1FAF54;flex:none}

/* brand */
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;margin-right:auto;min-width:0}
.mark{width:36px;height:36px;flex:none}
.word{display:grid;line-height:1}
.word b{font-family:var(--display);font-stretch:125%;font-weight:800;font-size:1.12rem;letter-spacing:.01em}
.word i{font-style:normal;font-family:var(--display);font-stretch:115%;font-weight:500;font-size:.62rem;letter-spacing:.34em;color:var(--muted);margin-top:4px}

/* language flags */
.lang{display:flex;align-items:center;gap:4px}
.lang button{border:0;background:none;padding:5px;border-radius:7px;cursor:pointer;line-height:0}
.lang svg{display:block;width:26px;height:17px;border-radius:3px;box-shadow:0 0 0 1px var(--line);opacity:.7;transition:opacity .15s}
.lang button:hover svg{opacity:1}
.lang button[aria-pressed="true"] svg{opacity:1;box-shadow:0 0 0 2px #fff,0 0 0 4px var(--red)}

/* utility bar (desktop) */
.util{background:var(--bg2);border-bottom:1px solid var(--line);font-size:.84rem;color:var(--muted)}
.util .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:40px;max-width:1400px}
.util .phones{display:flex;flex-wrap:wrap;gap:4px 22px;align-items:center}
.util .phones a{text-decoration:none;color:var(--ink2);font-weight:500}
.util .phones a:hover{color:var(--red-t)}
.util .phones span{display:inline-flex;gap:6px}
.util .wa{display:inline-flex;align-items:center;gap:6px}
@media (max-width:1000px){.util{display:none}}

/* main bar */
.top{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;gap:16px;min-height:72px;max-width:1400px}
.nav{display:flex;gap:20px;font-size:.93rem}
.nav a{text-decoration:none;color:var(--ink2);padding-block:8px;white-space:nowrap;border-bottom:2px solid transparent}
.nav a:hover{color:var(--red-t)}
.nav .home-link{display:grid;place-items:center}
.nav .home-link svg{width:20px;height:20px;display:block}
.nav a[aria-current="page"]{border-bottom-color:var(--red);color:var(--ink);font-weight:600}
.top .btn{padding:10px 15px;font-size:.88rem}
.top .lang{display:none}
.menu-btn{display:none;width:44px;height:44px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);cursor:pointer;place-items:center}
.menu-btn svg{width:20px;height:20px}
.sheet{border-top:1px solid var(--line);background:#fff}
.sheet nav{display:grid;padding-block:6px 18px}
.sheet nav a{text-decoration:none;font-weight:600;font-size:1.08rem;padding:13px 0;border-bottom:1px solid var(--line)}
@media (max-width:1359px){.nav{display:none}.menu-btn{display:grid}}
@media (min-width:1360px){.sheet{display:none!important}}
@media (max-width:1000px){.top .lang{display:flex}}
@media (max-width:700px){.top .btn{display:none}.top .lang{gap:2px}.top .lang button{padding:5px 4px}.top .lang svg{width:25px;height:17px}.top .wrap{gap:10px;min-height:66px}}

/* home hero */
.hero{padding-block:clamp(36px,6vw,80px) clamp(36px,5vw,64px)}
.hero .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(28px,5vw,72px);align-items:center}
.hero h1{font-family:var(--display);font-stretch:118%;font-weight:800;font-size:clamp(2.7rem,6.8vw,5.5rem);line-height:.95;letter-spacing:-.025em;margin-bottom:22px}
.hero h1 em{font-style:normal;color:var(--red)}
.hero .lede{font-size:1.16rem;color:var(--ink2)}
.ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.trust{margin-top:22px;font-size:.92rem;color:var(--muted)}
.ledger{background:var(--paper);border:1px solid var(--paper-line);border-radius:3px;padding:22px 22px 14px 48px;position:relative;font-family:var(--type);transform:rotate(-1.3deg);box-shadow:0 22px 44px -26px rgba(40,30,10,.45),0 2px 0 rgba(255,255,255,.7) inset}
.ledger::before{content:"";position:absolute;left:34px;top:0;bottom:0;width:1px;background:rgba(192,32,42,.5)}
.ledger-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding-bottom:10px;border-bottom:2px solid rgba(40,60,110,.35);text-transform:uppercase;letter-spacing:.06em;font-size:.86rem}
.ledger-h b{font-weight:700}
.ledger ul{list-style:none;margin:0;padding:0}
.ledger li{display:grid;grid-template-columns:7.4rem 1fr;gap:10px;padding:9px 0;border-bottom:1px solid rgba(40,60,110,.2);font-size:.93rem;line-height:1.4;align-items:baseline}
.ledger li:last-child{border-bottom:0}
.ledger .form-no{font-weight:700}
@media (max-width:900px){.hero .wrap{grid-template-columns:1fr}.ledger{transform:none;max-width:560px}}
@media (max-width:420px){.ledger{padding-left:40px}.ledger li{grid-template-columns:6.2rem 1fr;font-size:.86rem}.ledger::before{left:28px}}

/* quick actions */
.quick{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.qa{display:grid;gap:3px;padding:18px 20px;text-decoration:none;border-left:1px solid var(--line);transition:background .15s}
.qa:first-child{border-left:0}
.qa:hover{background:var(--bg2)}
.qa b{font-weight:600;display:flex;justify-content:space-between;align-items:center;gap:8px}
.qa b::after{content:"→";color:var(--red-t);font-weight:500}
.qa span{color:var(--muted);font-size:.86rem}
@media (max-width:860px){.quick{grid-template-columns:1fr 1fr}.qa:nth-child(3){border-left:0}.qa:nth-child(n+3){border-top:1px solid var(--line)}}
@media (max-width:420px){.qa{padding:15px}.qa span{display:none}}

/* doors */
.doors{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}
.door{grid-column:span 4;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;min-height:188px;padding:22px;border-radius:10px;text-decoration:none;border:1px solid var(--line);background:#fff;position:relative;overflow:hidden;transition:transform .15s,box-shadow .15s}
.door:hover{transform:translateY(-2px);box-shadow:0 16px 32px -20px rgba(0,0,0,.4)}
.door h3{font-family:var(--display);font-stretch:110%;font-weight:750;font-size:1.22rem;line-height:1.15}
.door p{color:var(--muted);font-size:.95rem;max-width:46ch}
.door .go{font-weight:600;color:var(--red-t);font-size:.92rem;margin-top:4px}
.door .fn{font-family:var(--type);font-size:.86rem;color:var(--muted)}
.door.big{grid-column:span 7;min-height:310px;background:var(--dark);color:var(--on-dark);border-color:var(--dark)}
.door.big h3{font-size:clamp(1.5rem,2.7vw,2.15rem)}
.door.big p{color:var(--on-dark-m);font-size:1.02rem}
.door.big .go,.door.ea .go{color:#fff}
.door.big .fn{color:var(--on-dark-m)}
.door.ea{grid-column:span 5;min-height:310px;background:var(--red);color:#fff;border-color:var(--red)}
.door.ea h3{font-size:clamp(1.4rem,2.3vw,1.85rem)}
.door.ea p{color:#FBE4E6;font-size:1.02rem}
.door .wm{position:absolute;right:16px;top:6px;font-family:var(--display);font-stretch:125%;font-weight:800;font-size:6rem;line-height:1;opacity:.16;pointer-events:none}
.door .wm-g{position:absolute;right:-34px;top:-34px;width:240px;opacity:.14;pointer-events:none}
.door.tint{background:var(--bg2)}
.door img.ph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.door.has-photo{color:#fff;border-color:transparent}
.door.has-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(15,15,18,.94) 40%,rgba(15,15,18,.62))}
.door.big.has-photo::after{background:linear-gradient(to right,rgba(15,15,18,.95) 0%,rgba(15,15,18,.86) 46%,rgba(15,15,18,.18) 100%)}
.door.has-photo .fn{color:#D8D8DD}
.door.has-photo>:not(img){position:relative;z-index:2}
.door.has-photo p{color:#E6E6EA}
.door.has-photo .go{color:#fff}
.door.has-photo .wm,.door.has-photo .wm-g{display:none}
@media (max-width:900px){.door,.door.big,.door.ea{grid-column:span 6}.door.big,.door.ea{min-height:240px}}
@media (max-width:600px){
  .doors{gap:10px}
  .door.big,.door.ea{grid-column:span 12;min-height:200px}
  .door{grid-column:span 6;min-height:0;padding:16px;justify-content:space-between}
  .door:not(.big):not(.ea) p,.door:not(.big):not(.ea) .fn{display:none}
  .door:not(.big):not(.ea) h3{font-size:1.02rem}
  .door:not(.big):not(.ea) .go{font-size:.84rem}
  .door .wm{display:none}
}

/* how it works */
.how{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,4vw,52px);list-style:none;margin:0;padding:0}
.how li{border-top:2px solid var(--ink);padding-top:16px;display:grid;gap:6px;align-content:start}
.how .n{font-family:var(--type);font-weight:700;font-size:1.5rem;color:var(--red-t);line-height:1}
.how p{color:var(--muted);font-size:.97rem}
@media (max-width:760px){.how{grid-template-columns:1fr}}

/* reviews */
.reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.review{margin:0;border:1px solid var(--line);border-radius:10px;padding:22px;display:grid;gap:12px;align-content:start;background:#fff}
.review .stars{color:#E0A100;letter-spacing:2px;font-size:1.05rem}
.review.lead{grid-column:span 2;background:var(--paper);border-color:var(--paper-line)}
.review.lead blockquote{font-family:var(--display);font-stretch:104%;font-weight:500;font-size:clamp(1.1rem,1.7vw,1.32rem);line-height:1.42}
.review blockquote{margin:0;font-size:1rem}
.review cite{font-style:normal;font-weight:600;font-size:.92rem}
.review cite span{display:block;font-weight:400;color:var(--muted);font-size:.84rem}
@media (max-width:900px){.reviews{grid-template-columns:1fr}.review.lead{grid-column:auto}}

/* portal band */
.portal{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,5vw,72px);align-items:center}
.feat{display:grid;grid-template-columns:1fr 1fr;gap:18px 28px;margin-top:26px}
.feat div{display:grid;gap:3px;padding-top:12px;border-top:1px solid var(--line)}
.feat span{color:var(--muted);font-size:.93rem}
.phone{justify-self:center;width:min(100%,320px);background:var(--dark);border-radius:36px;padding:12px;box-shadow:0 30px 60px -32px rgba(0,0,0,.55)}
.screen{border-radius:26px;background:var(--bg2);overflow:hidden}
.screen img{display:block;width:100%}
.scr-top{background:#fff;border-bottom:1px solid var(--line);padding:16px 16px 14px;display:flex;align-items:center;gap:10px}
.scr-top svg{width:26px;height:26px;flex:none}
.scr-top small{display:block;color:var(--muted);font-size:.72rem}
.scr-top b{font-size:.98rem}
.scr-body{padding:12px;display:grid;gap:10px}
.row{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px;display:grid;gap:6px;font-size:.84rem}
.row .r1{display:flex;justify-content:space-between;align-items:center;gap:8px}
.pill{font:600 .64rem var(--sans);letter-spacing:.05em;text-transform:uppercase;padding:3px 8px;border-radius:999px;white-space:nowrap}
.p-sign{background:rgba(192,32,42,.12);color:var(--red-t)}
.p-ok{background:rgba(30,142,90,.16)}
.p-due{background:var(--bg2);color:var(--muted);border:1px solid var(--line)}
.row .sub{color:var(--muted);font-size:.76rem}
.mini{font:600 .8rem var(--sans);background:var(--red);color:#fff;border-radius:7px;padding:9px;text-align:center}
@media (max-width:860px){.portal{grid-template-columns:1fr}}
@media (max-width:520px){.feat{grid-template-columns:1fr}}

/* offices strip + office cards */
.ofc{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}
.ofc>div{padding:22px;border-left:1px solid var(--line);display:grid;gap:8px;align-content:start}
.ofc>div:first-child{border-left:0}
.ofc h3{font-family:var(--display);font-stretch:112%;font-weight:750;font-size:1.25rem}
.ofc address,.office address{font-style:normal;color:var(--muted);font-size:.95rem}
.tel{font-family:var(--display);font-stretch:108%;font-weight:700;font-size:1.12rem;text-decoration:none}
.tel:hover{color:var(--red-t)}
.hours{display:grid;grid-template-columns:auto 1fr;gap:2px 14px;font-size:.88rem;color:var(--muted)}
.ofc .links,.acts{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:.9rem}
.ofc .links a{color:var(--red-t);font-weight:600;text-decoration:none}
.ofc .links a:hover{text-decoration:underline}
.after-ofc{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px;align-items:center}
@media (max-width:860px){.ofc{grid-template-columns:1fr}.ofc>div{border-left:0;border-top:1px solid var(--line)}.ofc>div:first-child{border-top:0}}

/* sub-page head */
.phead{background:var(--bg2);border-bottom:1px solid var(--line);padding-block:clamp(34px,5vw,64px)}
.phead .wrap{display:grid;gap:14px}
.phead h1{font-family:var(--display);font-stretch:114%;font-weight:800;font-size:clamp(2rem,4.8vw,3.5rem);line-height:1.02;letter-spacing:-.02em;max-width:20ch}
.phead .lede{font-size:1.12rem;color:var(--ink2);max-width:70ch}
.crumb{font-size:.86rem;color:var(--muted)}
.crumb a{color:var(--muted)}

/* rows list, two columns, typed card, CTA band */
.two{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,72px);align-items:start}
@media (max-width:860px){.two{grid-template-columns:1fr}}
.prose{display:grid;gap:16px;color:var(--ink2);max-width:66ch}
.prose strong{color:var(--ink)}
.rows{border-top:1px solid var(--line)}
.rowi{display:grid;grid-template-columns:12rem 1fr;gap:clamp(14px,3vw,40px);padding:22px 0;border-bottom:1px solid var(--line)}
.rowi .fn{font-family:var(--type);color:var(--muted);font-size:.95rem;line-height:1.6}
.rowi h3{font-size:1.12rem;margin-bottom:4px}
.rowi p{color:var(--muted);max-width:66ch}
.rowi a.more{display:inline-block;margin-top:8px;color:var(--red-t);font-weight:600;text-decoration:none}
.rowi a.more:hover{text-decoration:underline}
@media (max-width:700px){.rowi{grid-template-columns:1fr;gap:6px}}
.typed{background:var(--paper);border:1px solid var(--paper-line);border-radius:4px;padding:24px 26px;box-shadow:0 18px 36px -28px rgba(40,30,10,.5)}
.typed h2{font-family:var(--type);font-weight:700;font-size:1rem;letter-spacing:.06em;text-transform:uppercase;padding-bottom:12px;border-bottom:2px solid rgba(40,60,110,.35)}
.typed dl{margin:0}
.typed dt{font-weight:600;padding-top:14px}
.typed dd{margin:2px 0 0;color:var(--muted);font-size:.95rem;padding-bottom:14px;border-bottom:1px solid rgba(40,60,110,.2)}
.typed dd:last-child{border-bottom:0;padding-bottom:0}
.cta{background:var(--dark);color:var(--on-dark);border-radius:12px;padding:clamp(24px,4vw,44px);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px}
.cta h2{font-size:clamp(1.35rem,2.6vw,1.9rem);max-width:24ch}
.cta .btns{display:flex;flex-wrap:wrap;gap:10px}

/* story */
.story{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(32px,6vw,80px);align-items:start}
.promise{padding:22px 24px;background:var(--bg2);border-left:4px solid var(--red);border-radius:0 8px 8px 0}
.promise p{font-family:var(--display);font-stretch:108%;font-weight:600;font-size:clamp(1.12rem,1.9vw,1.35rem);line-height:1.32}
.promise small{display:block;margin-top:10px;color:var(--muted);font-size:.86rem;font-weight:600}
.story-photo{border-radius:8px;display:block;margin-bottom:22px}
.sig{font-weight:600;margin-top:18px}
.sig>span{display:block;font-weight:400;color:var(--muted);font-size:.9rem}
.timeline{list-style:none;margin:26px 0 0;padding:0}
.timeline li{display:grid;grid-template-columns:5rem 1fr;gap:18px;padding:15px 0;border-top:1px solid var(--line)}
.timeline li:last-child{border-bottom:1px solid var(--line)}
.timeline .yr{font-family:var(--type);font-weight:700;color:var(--red-t);padding-top:1px}
.timeline p{font-size:.96rem;color:var(--muted)}
@media (max-width:860px){.story{grid-template-columns:1fr}}

/* team */
.tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}
.tabs button{font:500 .88rem var(--sans);border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:999px;padding:8px 14px;cursor:pointer}
.tabs button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.team{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:22px 16px}
.person{display:grid;gap:3px;align-content:start;min-width:0}
.photo{aspect-ratio:4/5;border-radius:8px;background:var(--bg2);border:1px solid var(--line);display:grid;place-items:center;overflow:hidden;margin-bottom:10px;position:relative}
.photo img{width:100%;height:100%;object-fit:cover}
.photo .ini{font-family:var(--display);font-stretch:118%;font-weight:750;font-size:1.9rem;color:#B9B6B0}
.person b{font-size:1rem}
.person .ttl{color:var(--muted);font-size:.88rem;line-height:1.35}
.person .off{font-size:.8rem;font-weight:600;color:var(--red-t);margin-top:3px}
.person a{font-size:.85rem;overflow-wrap:anywhere;margin-top:2px}
@media (max-width:520px){.team{grid-template-columns:1fr 1fr}}

/* checklist */
.check{display:grid;grid-template-columns:repeat(2,1fr);gap:0 40px}
.check div{display:grid;grid-template-columns:26px 1fr;gap:10px;padding:13px 0;border-top:1px solid var(--line)}
.check b{display:block;font-size:.98rem;font-weight:600}
.check span{color:var(--muted);font-size:.9rem}
.box{width:16px;height:16px;border:1.5px solid var(--muted);border-radius:3px;margin-top:5px}
.calm{margin-top:24px;font-family:var(--display);font-stretch:106%;font-weight:600;font-size:1.15rem;line-height:1.38;max-width:60ch}
@media (max-width:700px){.check{grid-template-columns:1fr}}

/* faq */
.faq-wrap{display:grid;grid-template-columns:220px 1fr;gap:clamp(24px,5vw,60px)}
.faq-nav{display:grid;gap:6px;align-content:start;position:sticky;top:100px}
.faq-nav button{text-align:left;font:500 .95rem var(--sans);border:0;border-left:2px solid var(--line);background:none;color:var(--muted);padding:8px 14px;cursor:pointer}
.faq-nav button[aria-pressed="true"]{border-left-color:var(--red);color:var(--ink);font-weight:600}
details{border-top:1px solid var(--line)}
.faq-group details:last-child,.faq-list details:last-child{border-bottom:1px solid var(--line)}
summary{list-style:none;cursor:pointer;padding:17px 40px 17px 0;font-weight:600;font-size:1.03rem;position:relative}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";position:absolute;right:4px;top:11px;font:400 1.6rem var(--sans);color:var(--red-t);transition:transform .2s}
details[open] summary::after{transform:rotate(45deg)}
details p{color:var(--muted);padding:0 0 20px;max-width:70ch}
.faq-list{max-width:860px}
@media (max-width:760px){.faq-wrap{grid-template-columns:1fr}.faq-nav{position:static;display:flex;flex-wrap:wrap;gap:8px}.faq-nav button{border:1px solid var(--line);border-radius:999px;padding:8px 14px}.faq-nav button[aria-pressed="true"]{border-color:var(--ink);background:var(--ink);color:#fff}}

/* form + offices */
.book{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,56px);align-items:start}
.fcard{background:#fff;border:1px solid var(--line);border-radius:10px;padding:clamp(20px,3vw,32px);display:grid;gap:14px;box-shadow:0 20px 40px -32px rgba(0,0,0,.4)}
.fcard h2{font-size:1.35rem}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
label{display:grid;gap:6px;font-size:.86rem;font-weight:600}
input,select,textarea{font:400 1rem var(--sans);color:var(--ink);background:#fff;border:1px solid #CFCBC4;border-radius:8px;padding:12px;width:100%;min-width:0}
input:focus,select:focus,textarea:focus{outline:2px solid var(--red);outline-offset:0;border-color:transparent}
textarea{min-height:96px;resize:vertical}
.note{font-size:.86rem;color:var(--muted)}
.ok{background:rgba(30,142,90,.14);border-radius:8px;padding:12px 14px;font-size:.92rem}
.err{background:rgba(192,32,42,.1);border-radius:8px;padding:12px 14px;font-size:.92rem}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.offices{display:grid;gap:14px}
.office{background:#fff;border:1px solid var(--line);border-radius:10px;padding:20px 22px;display:grid;gap:9px}
.office .h{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.office h3{font-family:var(--display);font-stretch:112%;font-weight:750;font-size:1.25rem}
.office .st{font-size:.78rem;font-weight:600;letter-spacing:.06em;color:var(--muted)}
.office .acts a{font-size:.88rem;padding:9px 13px}
@media (max-width:900px){.book{grid-template-columns:1fr}}
@media (max-width:520px){.f2{grid-template-columns:1fr}}

/* footer */
footer{background:var(--dark);color:var(--on-dark-m);padding-block:48px 36px;font-size:.92rem}
footer .wrap{display:grid;grid-template-columns:1.2fr 1fr 1.2fr 1fr;gap:28px}
footer .word b{color:#fff}
footer .word i{color:var(--on-dark-m)}
footer h4{margin:0 0 10px;font:600 .82rem var(--sans);letter-spacing:.04em;text-transform:uppercase;color:#fff}
footer ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}
footer a{color:var(--on-dark-m);text-decoration:none}
footer a:hover{color:#fff}
.slogan{font-family:var(--display);font-stretch:118%;font-weight:750;font-size:1.35rem;color:#fff;margin-top:16px}
.legal{grid-column:1/-1;border-top:1px solid var(--dark-line);padding-top:18px;font-size:.82rem}
@media (max-width:900px){footer .wrap{grid-template-columns:1fr 1fr}}
@media (max-width:520px){footer .wrap{grid-template-columns:1fr}}

/* phone bottom bar + call sheet */
.bar{display:none}
@media (max-width:700px){
  :root{--bar:calc(64px + env(safe-area-inset-bottom,0px))}
  .bar{display:grid;grid-template-columns:1fr 1.15fr 1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:40;background:#fff;border-top:1px solid var(--line);padding:8px 8px calc(8px + env(safe-area-inset-bottom,0px));gap:6px;box-shadow:0 -8px 24px -14px rgba(0,0,0,.3)}
  .bar a,.bar button{display:grid;place-items:center;text-decoration:none;font:600 .82rem var(--sans);border-radius:8px;min-height:46px;border:1px solid var(--line);color:var(--ink);background:#fff;cursor:pointer}
  .bar a.main{background:var(--red);border-color:var(--red);color:#fff}
}
.callsheet{position:fixed;inset:0;z-index:50}
.callsheet-bg{position:absolute;inset:0;background:rgba(0,0,0,.45)}
.callsheet-card{position:absolute;left:0;right:0;bottom:0;background:#fff;border-radius:18px 18px 0 0;padding:20px 16px calc(16px + env(safe-area-inset-bottom,0px));display:grid;gap:10px;max-width:520px;margin-inline:auto;box-shadow:0 -12px 40px rgba(0,0,0,.3)}
.callsheet-card h2{font-size:1.1rem}
.callsheet-card a{display:flex;justify-content:space-between;align-items:center;gap:12px;text-decoration:none;border:1px solid var(--line);border-radius:10px;padding:14px 16px}
.callsheet-card a span{font-weight:600}
.callsheet-card a b{font-family:var(--display);font-stretch:108%;font-weight:700;font-size:1.05rem;color:var(--red-t);white-space:nowrap}
.callsheet-card small{color:var(--muted);font-size:.85rem;text-align:center}
@media (min-width:701px){.callsheet-card{bottom:auto;top:50%;transform:translateY(-50%);border-radius:14px;left:16px;right:16px}}

/* client portal guide */
.guide{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:40px 28px}
.gstep{display:grid;gap:8px;align-content:start}
.gstep .shot{border:1px solid var(--line);border-radius:20px;overflow:hidden;background:var(--bg2);box-shadow:0 22px 40px -30px rgba(0,0,0,.5);max-width:300px;margin-bottom:10px}
.gstep .shot img{display:block;width:100%;height:auto}
.gstep .n{font-family:var(--type);font-weight:700;font-size:1.3rem;color:var(--red-t);line-height:1}
.gstep h2{font-size:1.2rem}
.gstep p{color:var(--muted);font-size:.97rem;max-width:44ch}
@media (max-width:900px){.guide{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.guide{grid-template-columns:1fr}.gstep .shot{max-width:260px}}
.portal .btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}

/* photographs */
.fig{margin:0 0 22px}
.fig img{display:block;width:100%;height:auto;border-radius:8px}
.fig figcaption{margin-top:8px;font-size:.86rem;color:var(--muted)}
.gallery{display:grid;grid-template-columns:1.35fr 1fr;gap:18px;margin-top:clamp(28px,4vw,48px)}
.gallery .fig{margin:0}
.gallery .fig img{height:clamp(220px,30vw,380px);object-fit:cover}
@media (max-width:700px){.gallery{grid-template-columns:1fr}.gallery .fig img{height:auto}}
footer li.adr{line-height:1.5;margin-bottom:6px}
footer li.adr b{display:block;color:#fff;font-weight:600}
