/* Penta Realty — Warm Architectural Editorial
   Shared by every page. Change the named colours here to update the whole site. */
:root {
  --penta-green: #53695b;
  --penta-green-deep: #3f5548;
  --penta-sage: #a5af99;
  --penta-mist: #eff4ed;
  --penta-pearl: #fafbf7;
  --penta-limestone: #e7e4d9;
  --penta-champagne: #c4b28f;
  --penta-charcoal: #25372e;
  --penta-muted: #56665b;
  --penta-bronze-text: #746348;
  --penta-on-green: #f1f4ed;
  --penta-on-green-accent: #eee8d9;
  --g: var(--penta-green);
  --g2: #4e6859;
  --gd: var(--penta-green-deep);
  --gold: var(--penta-champagne);
  --sand: var(--penta-limestone);
  --cream: var(--penta-mist);
  --paper: var(--penta-pearl);
  --ink: var(--penta-charcoal);
  --muted: var(--penta-muted);
  --line: #ced7cc;
  --serif: "Playfair Display", Georgia, serif;
  --sans: "DM Sans", Arial, sans-serif;
  --shadow: 0 12px 32px rgba(37,55,46,.12);
  --accent-text: var(--penta-bronze-text);
  --secondary-text: var(--muted);
  color-scheme: light;
}
body { background:var(--paper); color:var(--ink); font-size:16px; line-height:1.65; }
button, a, input, select, textarea { -webkit-tap-highlight-color:transparent; }
button, select { cursor:pointer; }
button, input, select, textarea { font-family:var(--sans); }
img { max-width:100%; height:auto; }
button, a { touch-action:manipulation; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible {
  outline:3px solid currentColor; outline-offset:4px;
}
::selection { background:var(--penta-sage); color:var(--ink); }
[id] { scroll-margin-top:24px; }
.skip-link { position:fixed; top:8px; left:12px; z-index:100; padding:12px 20px; background:var(--paper); color:var(--ink); transform:translateY(-160%); }
.skip-link:focus { transform:none; }
.reveal { opacity:1; transform:none; }
.eyebrow, .card small, .number, .path .num { color:var(--accent-text); }
.eyebrow { font-size:11px; letter-spacing:.17em; }
.intro, .card p, .path p { color:var(--secondary-text); }
.header, body.home-page>header, .top, .topbar, .hero, .market-story, .library, .research-board, .research, .aside, .cta, .process, .contact, footer, .mobile, .mobile-panel, .dialog-head {
  --accent-text:var(--penta-on-green-accent);
  --secondary-text:var(--penta-on-green);
}
.header, body.home-page>header { background:var(--g); color:#fff; border-bottom:1px solid rgba(255,255,255,.23); }
.top, .topbar { background:var(--gd); color:var(--penta-on-green); font-size:11px; }
.topbar { letter-spacing:.02em; }
.links, .navlinks { font-size:11px; gap:23px; letter-spacing:.09em; }
.links a, .navlinks a { padding:10px 0; }
.links a:hover, .navlinks a:hover, .topbar a:hover { color:#fff; text-decoration:underline; text-underline-offset:5px; }
.logo, .brand img, .foot img, .footer-logo { filter:saturate(.32); }
.brand img { height:50px; width:170px; }
.btn, .button, .nav-cta, .finder-submit, .wa { font-size:11px; letter-spacing:.08em; font-weight:600; }
.btn, .button.solid, .nav-cta, .finder-submit, .wa { background:var(--gold); border-color:var(--gold); color:var(--ink); }
.btn:hover, .button.solid:hover, .nav-cta:hover, .finder-submit:hover, .wa:hover { background:var(--penta-limestone); border-color:var(--penta-limestone); color:var(--ink); }
.btn.outline, .button:not(.solid):not(.dark) { background:transparent; color:inherit; border-color:currentColor; }
.btn.outline:hover, .button:not(.solid):not(.dark):hover { background:var(--paper); color:var(--ink); border-color:var(--paper); }
.button.dark { background:var(--g); border-color:var(--g); color:#fff; }
.button.dark:hover { background:var(--gd); border-color:var(--gd); }
.text-link { color:var(--accent-text); font-size:11px; }
.more { font-size:11px; color:var(--g2); }
.more:hover, .text-link:hover, .footlinks a:hover, .footer-links a:hover { text-decoration:underline; text-underline-offset:4px; }
.title { line-height:1.08; }
.hero p, .hero-lead { color:var(--penta-on-green); }
.shade { background:rgba(33,48,39,.82); }
.hero-shade { background:rgba(33,48,39,.82); width:67%; }
.home-page .hero { height:auto; min-height:0; max-height:none; }
.home-page .hero-layout { min-height:730px; padding-top:150px; padding-bottom:60px; }
.home-page .hero h1 { font-size:clamp(52px,6.3vw,90px); line-height:1; }
.hero h1 em, .hero-market, .hero-index { color:var(--penta-on-green-accent); }
.hero-market:before { color:var(--penta-on-green); }
.home-page .hero-copy { max-width:720px; }
.hero-lead { font-size:17px; line-height:1.65; max-width:590px; }
.home-page .finder { position:relative; left:auto; bottom:auto; transform:none; margin:0 auto; box-shadow:none; background:var(--cream); }
.finder { --accent-text:var(--penta-bronze-text); --secondary-text:var(--muted); }
.finder-head span, .finder-field label { font-size:10px; }
.finder-field { padding:19px; }
.finder-field select { min-height:34px; font-size:15px; }
.market-panel { background:rgba(63,85,72,.96); }
.market-panel>p, .market-button small { color:var(--penta-on-green); font-size:10px; }
.market-button i { color:var(--penta-on-green-accent); }
.market-button.active, .market-button:hover { background:rgba(255,255,255,.11); }
.premise, .band, .proof, .article .toc { background:var(--cream); }
.selective-note { background:var(--sand); }
.research-board { background:var(--g); }
.research-board>p, .check span, .check p { color:var(--secondary-text); }
.check:after, .detail-list div:before { color:var(--accent-text); }
.check span { font-size:12px; }
.inner-page .checklist, .inner-page .check { border-color:var(--line); }
.research .checklist, .research .check { border-color:rgba(255,255,255,.25); }
.market-story:after { background:rgba(33,48,39,.57); }
.market-story p { color:#fff; font-size:15px; }
.market-tags span { font-size:10px; background:rgba(37,55,46,.4); }
.library { background:var(--g); }
.library-head .intro { color:var(--penta-on-green); }
.project-filter button { color:var(--penta-on-green); font-size:11px; border-color:rgba(255,255,255,.4); min-height:44px; }
.project-filter button.active, .project-filter button:hover, .project-tab.active, .project-tab:hover { background:var(--gold); border-color:var(--gold); color:var(--ink); }
.project-list { background:var(--gd); }
.project-tab .tab-num { color:var(--penta-on-green-accent); }
.project-tab small { color:var(--penta-on-green); font-size:10px; }
.project-tab.active .tab-num, .project-tab:hover .tab-num, .project-tab.active small, .project-tab:hover small { color:var(--ink); }
.project-view { background:var(--gd); }
.project-panel:after { background:rgba(33,48,39,.57); }
.project-info { color:#fff; }
.project-info p { color:#fff; font-size:15px; }
.project-kicker { color:var(--penta-on-green-accent); font-size:11px; }
.data-strip { background:rgba(37,55,46,.91); }
.data-strip span { color:var(--penta-on-green); font-size:10px; }
.inventory-note, .inventory-note a { color:var(--penta-on-green); font-size:12px; }
.urban { background:var(--sand); }
.urban-copy { background:var(--cream); }
.urban-label { color:var(--ink); }
.home-page .fact span { font-size:10px; }
.landmarks>span, .landmark-tabs button { font-size:11px; }
.landmark-tabs button { min-height:42px; }
.landmark-tabs button.active { background:var(--g); color:#fff; }
.path { padding-bottom:78px; }
.path p { font-size:14px; }
.process { background:var(--gd); }
.process-top .intro, .step p, .history-copy p, .moment p { color:var(--penta-on-green); }
.step>span, .moment b { color:var(--penta-on-green-accent); }
.step p, .moment p { font-size:14px; }
.quote cite { font-size:11px; }
.faq button, .faq-q { color:var(--ink); }
.faq-q:after, .faq button:after { color:var(--g2); }
.faq-a, .answer { font-size:15px; line-height:1.75; }
.contact { background:var(--g); }
.contact .intro, .contact-option span, .aside p, .cta p { color:var(--penta-on-green); }
.contact-option b { overflow-wrap:anywhere; }
.contact-form, .dialog-body, .contact .aside, .card, .related a {
  --accent-text:var(--penta-bronze-text); --secondary-text:var(--muted); background:var(--paper); color:var(--ink);
}
.contact-form { border:1px solid var(--line); }
.fields { align-items:start; }
.field label, .form>label { color:inherit; font-size:11px; font-weight:600; letter-spacing:.04em; }
.form>label { margin-bottom:-8px; }
.field input, .field select, .field textarea, .form input, .form select, .form textarea {
  background:var(--paper); border:1px solid #98a896; color:var(--ink); font-size:16px; min-height:48px;
}
.field input::placeholder, .field textarea::placeholder, .form input::placeholder, .form textarea::placeholder { color:var(--muted); opacity:1; }
.form textarea, .field textarea { resize:vertical; }
.form-help, .form-status { margin:12px 0 0; font-size:12px; line-height:1.65; color:inherit!important; }
.form-help a, .form-status a { text-decoration:underline; text-underline-offset:3px; }
.form-status:empty { display:none; }
.contact-form .button, .dialog-body .button { width:100%; }
.dialog-head { background:var(--g); }
dialog::backdrop { background:rgba(37,55,46,.75); }
.dialog-close { min-width:44px; min-height:44px; }
footer { background:#34483c; color:var(--penta-on-green); }
.foot p, .foot a, .foot span, .footer-grid p, .footer-links { font-size:13px; }
.foot h3, .footer-title { font-size:11px; }
.legal, .footer-bottom { font-size:11px; flex-wrap:wrap; padding-bottom:42px; }
.footer-links a:hover { color:#fff; }
.wa { min-height:46px; box-shadow:var(--shadow); }
.crumbs { font-size:12px; background:var(--cream); }
.inner-page .facts { margin-top:30px; background:rgba(37,55,46,.94); }
.inner-page .fact span { color:var(--penta-on-green); font-size:10px; }
.inner-page .hero-in { padding-bottom:56px; }
.inner-page .card small { font-size:11px; }
.inner-page .card p { font-size:15px; }
.inner-page .card h3 { line-height:1.2; }
.inner-page .article { width:min(820px,calc(100% - 40px)); }
.inner-page .article .toc { border:1px solid var(--line); }
.inner-page .article p, .inner-page .article li { color:var(--muted); }
.inner-page .detail-list { font-size:15px; }
body.menu-open { overflow:hidden; }
.mobile, .mobile-panel { background:var(--g); overflow-y:auto; z-index:60; }
.menu-close { position:absolute; right:24px; top:30px; min-height:46px; padding:0 16px; border:1px solid currentColor; background:transparent; color:#fff; font-size:15px; }
.noscript-note { padding:20px; margin:0; background:var(--cream); }
.noscript-note a { text-decoration:underline; }
@media(min-width:1051px) {
  .hero-shade { width:70%; }
  .home-page .hero-layout { gap:38px; }
}
@media(max-width:1050px) {
  .home-page .hero-layout { min-height:0; padding-top:145px; padding-bottom:40px; }
  .home-page .hero-copy { max-width:720px; }
  .hero-shade { width:100%; }
  .finder-submit { grid-column:1/-1; }
  .library-head { gap:30px; }
  .home-page .project-browser { grid-template-columns:290px 1fr; }
  .home-page .project-info { grid-template-columns:1fr; gap:20px; }
  .home-page .project-info .button { justify-self:start; }
  .home-page .data-strip { grid-template-columns:1fr; }
  .home-page .data-strip div { border-right:0; border-bottom:1px solid rgba(255,255,255,.2); }
  .home-page .project-view { min-height:720px; }
}
@media(max-width:720px) {
  .home-page .hero-layout { padding-top:127px; padding-bottom:32px; }
  .home-page .hero h1 { font-size:clamp(42px,11vw,61px); line-height:1.03; }
  .hero-lead { font-size:16px; margin:25px 0; }
  .hero-actions .button { min-height:48px; padding:0 15px; font-size:10px; }
  .home-page .finder { width:calc(100% - 30px); }
  .finder-field { padding:14px; }
  .finder-field select { font-size:16px; }
  .finder-head { padding:14px; }
  .market-panel { margin-top:28px; }
  .market-button small { display:block; font-size:9px; letter-spacing:0; }
  .market-button { grid-template-columns:24px 1fr; }
  .home-page .project-view { min-height:670px; height:670px; }
  .project-info h3 { font-size:40px; }
  .home-page .project-info { bottom:25px; }
  .home-page .project-tab { min-width:245px; }
  .home-page .project-list { scroll-snap-type:x proximity; }
  .home-page .project-tab { scroll-snap-align:start; }
  .urban-image img { width:100%; height:100%; object-fit:cover; }
  .contact-option { font-size:12px; gap:12px; flex-wrap:wrap; }
  .top .wrap, .topbar .wrap { justify-content:center; font-size:10px; letter-spacing:0; }
  .title { font-size:clamp(34px,9vw,43px); }
  .wa { font-size:10px; bottom:12px; right:12px; }
  .legal, .footer-bottom { padding-bottom:55px; }
  .inner-page .hero h1 { font-size:clamp(39px,10vw,57px); line-height:1.08; }
  .inner-page .hero-in { padding-top:68px; }
  .inner-page .facts { grid-template-columns:1fr 1fr; }
  .inner-page .fact { padding:17px 13px; }
  .inner-page .fact b { font-size:18px; }
  .inner-page .aside { padding:30px 22px; }
  .inner-page .article h2 { font-size:30px; }
}
@media(max-width:380px) {
  .topbar .wrap, .top .wrap { font-size:9px; }
  .home-page .hero h1 { font-size:41px; }
  .inner-page .facts { grid-template-columns:1fr; }
  .home-page .project-view { min-height:740px; height:740px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *, *:before, *:after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
  .hero-slide, .card:hover img, .market-story:hover img { transform:none; }
}
