/*
Theme Name: Physetech Consulting
Theme URI: https://physetech-consulting.com
Author: Javier Lacave
Description: Tema propio trilingue (EN/ES/FR) para Physetech Consulting - Physical, electronic security & risk management consulting.
Version: 25.9.4
Requires PHP: 7.4
Text Domain: physetech
*/

/* ===========================================================
   1. VARIABLES / RESET
=========================================================== */
:root{
  --navy: #0B1E33;
  --navy-light: #14304F;
  --steel: #2E4258;
  --accent: #C9A15A;
  --accent-dark: #A9813F;
  --grey-bg: #F4F6F8;
  --white: #FFFFFF;
  --text-dark: #1A2530;
  --text-muted: #5B6B7B;
  --radius: 6px;
  --max-width: 1180px;
  --font-heading: 'Poppins', 'Segoe UI', Arial, sans-serif;
  --font-body: 'Inter', 'Segoe UI', Arial, sans-serif;
}
*{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{ margin:0; font-family: var(--font-body); color: var(--text-dark); background: var(--white); line-height: 1.65; font-size: 16px; }
img{ max-width:100%; height:auto; display:block; }
a{ color: var(--accent-dark); text-decoration:none; transition: color .2s ease; }
a:hover{ color: var(--accent); }
h1,h2,h3,h4{ font-family: var(--font-heading); color: var(--navy); line-height:1.2; margin: 0 0 .6em; font-weight:600; }
h1{ font-size: clamp(2.1rem, 4vw, 3.1rem); }
h2{ font-size: clamp(1.6rem, 3vw, 2.2rem); }
h3{ font-size: 1.2rem; }
p{ margin:0 0 1em; color: var(--text-muted); }
.container{ max-width: var(--max-width); margin: 0 auto; padding: 0 24px; }
section{ padding: 76px 0; }
.section-alt{ background: var(--grey-bg); }
.eyebrow{ display:inline-block; text-transform: uppercase; letter-spacing: .12em; font-size: .78rem; font-weight:700; color: var(--accent-dark); margin-bottom: 14px; }
.btn{ display:inline-block; padding: 14px 30px; border-radius: var(--radius); font-weight:600; font-family: var(--font-heading); font-size: .93rem; letter-spacing:.02em; cursor:pointer; border: 2px solid transparent; transition: all .2s ease; }
.btn-primary{ background: var(--accent); color: var(--navy); }
.btn-primary:hover{ background: var(--accent-dark); color: var(--white); }
.btn-outline{ border-color: var(--white); color: var(--white); }
.btn-outline:hover{ background: var(--white); color: var(--navy); }
.btn-outline-dark{ border-color: var(--navy); color: var(--navy); }
.btn-outline-dark:hover{ background: var(--navy); color: var(--white); }

/* HEADER — V25.8: compact executive header, centered message */
.site-header{position:sticky;top:0;z-index:999;background:var(--white);box-shadow:0 1px 0 rgba(11,30,51,.10);}
.header-topbar{background:var(--white);border-bottom:1px solid #DCE2E8;}
.header-top-inner{
  max-width:1430px;
  margin:0 auto;
  min-height:150px;
  padding:12px 28px;
  display:grid;
  grid-template-columns:220px minmax(520px,1fr) 320px;
  align-items:center;
  column-gap:28px;
}
.site-logo{display:flex;align-items:center;justify-content:flex-start;width:180px;height:126px;line-height:0;overflow:visible;}
.site-logo img{display:block;width:180px;height:auto;max-width:none;object-fit:contain;}
.header-positioning{
  align-self:center;
  border-left:1px solid #D5DCE3;
  padding-left:34px;
  padding-right:34px;
  text-align:center;
}
.header-title{
  font-family:var(--font-heading);
  font-weight:600;
  font-size:clamp(1.55rem,2.15vw,2rem);
  line-height:1.12;
  color:var(--navy);
  margin:0 auto 8px;
  max-width:700px;
}
.header-subtitle{
  font-family:var(--font-heading);
  font-size:1.02rem;
  line-height:1.3;
  color:var(--navy);
  margin:0 auto;
  max-width:700px;
}
.header-stats{display:none;}
.header-stat,.header-stat-separator,.header-stat-icon{display:none;}
.header-actions{align-self:center;border-left:1px solid #D5DCE3;padding-left:34px;display:flex;flex-direction:column;gap:14px;}
.header-action-top{display:flex;align-items:center;justify-content:flex-end;gap:14px;}
.lang-switcher{display:flex;align-items:center;gap:4px;flex-shrink:0;white-space:nowrap;}
.lang-switcher a{display:inline-flex;align-items:center;justify-content:center;font-size:.78rem;line-height:1;font-weight:700;padding:7px 6px;border-radius:5px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;}
.lang-switcher a:hover,.lang-switcher a.current-lang{background:var(--grey-bg);color:var(--navy);}
.header-contact{display:inline-flex;align-items:center;justify-content:center;gap:9px;background:var(--navy);color:var(--white);border-radius:7px;padding:11px 20px;font-family:var(--font-heading);font-weight:600;font-size:.95rem;white-space:nowrap;box-shadow:0 4px 10px rgba(11,30,51,.10);}
.header-contact:hover{background:var(--navy-light);color:var(--white);}
.header-contact-icon{display:inline-flex;width:24px;height:24px;align-items:center;justify-content:center;}
.header-contact-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.header-phone{display:flex;align-items:center;gap:11px;color:var(--navy);align-self:flex-end;}
.header-phone:hover{color:var(--navy);}
.header-phone-icon{display:inline-flex;width:29px;height:29px;align-items:center;justify-content:center;flex:0 0 29px;}
.header-phone-icon svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.header-phone strong{display:block;font-family:var(--font-heading);font-size:1.12rem;line-height:1.1;font-weight:600;}
.header-phone small{display:block;margin-top:3px;color:var(--text-dark);font-size:.82rem;line-height:1.15;}
.header-nav-row{background:var(--white);border-bottom:5px solid var(--navy);}
.header-nav-inner{max-width:1430px;margin:0 auto;min-height:68px;padding:0 28px;display:flex;align-items:center;justify-content:center;}
.main-nav{width:100%;}
.main-nav > ul{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0;padding:0;white-space:nowrap;}
.main-nav li{margin:0;padding:0;flex:0 0 auto;}
.main-nav a{display:inline-flex;align-items:center;justify-content:center;color:var(--navy);font-family:var(--font-heading);font-weight:600;font-size:.91rem;line-height:1.2;white-space:nowrap;padding:10px 0;}
.main-nav a:hover{color:var(--accent-dark);}
.main-nav .nav-has-submenu{position:relative;}
.main-nav .nav-submenu{display:none;position:absolute;top:100%;right:0;min-width:250px;list-style:none;margin:0;padding:10px 0;background:var(--white);border:1px solid #E7EBEF;border-top:3px solid var(--accent);box-shadow:0 14px 30px rgba(11,30,51,.12);z-index:4000;}
.main-nav .nav-has-submenu:hover>.nav-submenu,.main-nav .nav-has-submenu:focus-within>.nav-submenu{display:block;}
.main-nav .nav-submenu li{display:block;width:100%;border-bottom:1px solid #EEF1F4;}
.main-nav .nav-submenu li:last-child{border-bottom:0;}
.main-nav .nav-submenu a{display:flex;width:100%;justify-content:flex-start;padding:10px 16px;font-size:.82rem;white-space:nowrap;}
.nav-toggle{display:none;background:transparent;border:1px solid #D8DEE4;border-radius:5px;width:40px;height:40px;padding:0;font-size:1.1rem;color:var(--navy);cursor:pointer;}

@media(max-width:1200px){
  .header-top-inner{grid-template-columns:190px minmax(350px,1fr) 280px;column-gap:20px;padding-left:22px;padding-right:22px;min-height:142px;}
  .site-logo{width:160px;height:auto;}
  .site-logo img{width:160px;}
  .header-positioning{padding-left:24px;padding-right:24px;}
  .header-actions{padding-left:24px;}
  .header-title{font-size:1.5rem;}
  .header-subtitle{font-size:.92rem;}
  .main-nav > ul{gap:13px;}
  .main-nav a{font-size:.82rem;}
}
@media(max-width:980px){
  .header-top-inner{grid-template-columns:150px 1fr 235px;min-height:132px;}
  .site-logo{width:135px;}
  .site-logo img{width:135px;}
  .header-positioning{padding-left:18px;padding-right:18px;}
  .header-actions{padding-left:18px;gap:10px;}
  .header-action-top{gap:7px;}
  .header-contact{padding:10px 12px;font-size:.85rem;}
  .header-phone strong{font-size:.98rem;}
  .header-phone small{font-size:.74rem;}
  .header-nav-inner{min-height:64px;}
  .main-nav > ul{gap:9px;}
  .main-nav a{font-size:.72rem;}
}
@media(max-width:760px){
  .header-top-inner{grid-template-columns:1fr auto;min-height:96px;padding:12px 18px;}
  .site-logo{width:125px;height:auto;}
  .site-logo img{width:125px;}
  .header-positioning{display:none;}
  .header-actions{border-left:0;padding-left:0;gap:7px;align-items:flex-end;}
  .header-action-top{gap:5px;}
  .header-phone{display:none;}
  .header-contact{padding:9px 11px;font-size:.8rem;}
  .header-nav-row{border-bottom-width:4px;}
  .header-nav-inner{min-height:56px;padding:0 18px;justify-content:flex-end;}
  .nav-toggle{display:inline-flex;align-items:center;justify-content:center;}
  .main-nav{display:none;position:absolute;top:100%;left:0;right:0;width:auto;padding:8px 18px 14px;background:var(--white);border-top:1px solid #E7EBEF;box-shadow:0 12px 24px rgba(11,30,51,.10);}
  .main-nav.is-open{display:block;}
  .main-nav > ul{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;white-space:normal;}
  .main-nav li{border-bottom:1px solid #EEF1F4;}
  .main-nav li:last-child{border-bottom:0;}
  .main-nav a{width:100%;justify-content:flex-start;font-size:.92rem;padding:12px 2px;}
}
@media(max-width:430px){
  .site-logo,.site-logo img{width:112px;}
  .header-contact{font-size:.76rem;padding:8px 9px;}
  .lang-switcher a{font-size:.64rem;padding:6px 4px;}
}

/* HERO */
.hero{ background: linear-gradient(135deg, var(--navy) 0%, var(--navy-light) 60%, var(--steel) 100%); color: var(--white); padding: 100px 0 90px; position: relative; overflow:hidden; }
.hero::after{ content:""; position:absolute; inset:0; background-image: radial-gradient(circle at 80% 20%, rgba(201,161,90,.15), transparent 45%); }
.hero .container{ position:relative; z-index:2; max-width: 820px; }
.hero p.lead{ color: rgba(255,255,255,.82); font-size:1.12rem; max-width: 620px; }
.hero-actions{ display:flex; gap:16px; margin-top: 30px; flex-wrap:wrap; }
.hero-credentials{ display:flex; gap:28px; margin-top:52px; flex-wrap:wrap; border-top: 1px solid rgba(255,255,255,.18); padding-top: 26px; }
.hero-credentials div{ min-width:130px; }
.hero-credentials strong{ display:block; font-family: var(--font-heading); font-size:1.4rem; color: var(--accent); }
.hero-credentials span{ font-size:.8rem; color: rgba(255,255,255,.7); }
.page-hero{ padding: 70px 0 60px; }

/* GRID / CARDS */
.grid{ display:grid; gap: 26px; }
.grid-3{ grid-template-columns: repeat(3, 1fr); }
.grid-2{ grid-template-columns: repeat(2, 1fr); }
@media (max-width: 900px){ .grid-3, .grid-2{ grid-template-columns: 1fr; } }
.card{ background: var(--white); border: 1px solid #E7EBEF; border-radius: var(--radius); padding: 30px; transition: transform .2s ease, box-shadow .2s ease; position:relative; }
.card:hover{ transform: translateY(-4px); box-shadow: 0 14px 30px rgba(11,30,51,.08); }
.card .icon{ width:46px; height:46px; border-radius: 10px; background: var(--navy); color: var(--accent); display:flex; align-items:center; justify-content:center; font-size:1.2rem; margin-bottom: 16px; }
.card h3{ margin-bottom: 10px; }
.card.priority{ border-color: var(--accent); }
.priority-badge{ position:absolute; top:-11px; right:20px; background: var(--accent); color: var(--navy); font-size:.68rem; font-weight:700; padding:4px 12px; border-radius: 20px; text-transform:uppercase; letter-spacing:.05em; }
.section-head{ max-width: 640px; margin-bottom: 46px; }

/* SERVICE VISUAL ROWS (icono grande + texto, para servicios prioritarios) */
.service-row{ display:grid; grid-template-columns: 280px 1fr; gap: 44px; align-items:center; margin-bottom: 56px; }
.service-row.reverse{ grid-template-columns: 1fr 280px; }
.service-row.reverse .service-visual{ order:2; }
@media (max-width: 860px){ .service-row, .service-row.reverse{ grid-template-columns: 1fr; } .service-row.reverse .service-visual{ order:0; } }
.service-visual{
  background: linear-gradient(135deg, var(--navy) 0%, var(--navy-light) 100%);
  border-radius: 14px; aspect-ratio: 1/1; display:flex; align-items:center; justify-content:center;
  position:relative; overflow:hidden;
}
.service-visual::after{ content:""; position:absolute; inset:0; background-image: radial-gradient(circle at 75% 25%, rgba(201,161,90,.25), transparent 55%); }
.service-visual svg{ width:52%; height:52%; position:relative; z-index:2; }
.service-body .priority-tag{ display:inline-block; background: rgba(201,161,90,.12); color: var(--accent-dark); border:1px solid rgba(201,161,90,.35); padding:4px 12px; border-radius:20px; font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; margin-bottom:12px; }
.service-body ul{ margin:14px 0 0; padding-left:18px; color:var(--text-muted); font-size:.94rem; }
.service-body ul li{ margin-bottom:4px; }

/* Iconos SVG dentro de las tarjetas estándar de servicio */
.card .icon-svg{ width:46px; height:46px; border-radius: 10px; background: var(--navy); display:flex; align-items:center; justify-content:center; margin-bottom: 16px; }
.card .icon-svg svg{ width:24px; height:24px; }

/* STATS */
.stats-bar{ background: var(--navy); color:var(--white); padding: 48px 0; }
.stats-bar .grid-3, .stats-bar .grid-4{ text-align:center; }
.grid-5{ grid-template-columns: repeat(5,1fr); }
@media (max-width: 1100px){ .grid-5{ grid-template-columns: repeat(3,1fr); } }
@media (max-width: 700px){ .grid-5{ grid-template-columns: 1fr; } }
.grid-4{ grid-template-columns: repeat(4,1fr); }
@media (max-width: 900px){ .grid-4{ grid-template-columns: repeat(2,1fr); } }
.stats-bar strong{ display:block; font-family: var(--font-heading); font-size:2rem; color: var(--accent); }
.stats-bar span{ font-size:.82rem; color: rgba(255,255,255,.75); }

/* TIMELINE */
.timeline{ border-left: 2px solid #E1E6EB; margin-left: 8px; padding-left: 32px; }
.timeline-item{ position:relative; padding-bottom: 38px; }
.timeline-item::before{ content:""; position:absolute; left:-40px; top:4px; width:14px; height:14px; border-radius:50%; background: var(--accent); border:3px solid var(--white); box-shadow:0 0 0 2px var(--accent); }
.timeline-item .period{ font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; color: var(--accent-dark); font-weight:700; }
.timeline-item h3{ margin: 4px 0 6px; }

/* CTA BAND */
.cta-band{ background: var(--navy); color: var(--white); text-align:center; padding: 66px 0; }
.cta-band h2{ color: var(--white); }
.cta-band p{ color: rgba(255,255,255,.75); max-width:560px; margin:0 auto 26px; }

/* CONTACT */
.contact-grid{ display:grid; grid-template-columns: 1fr 1.2fr; gap: 54px; align-items:start; }
@media (max-width: 860px){ .contact-grid{ grid-template-columns:1fr; } }
.contact-info li{ list-style:none; margin-bottom: 18px; display:flex; gap:12px; align-items:flex-start; }
.contact-info li strong{ display:block; color: var(--navy); }
.contact-form input, .contact-form textarea{ width:100%; padding: 13px 16px; margin-bottom: 15px; border: 1px solid #D8DEE4; border-radius: var(--radius); font-family: var(--font-body); font-size:.94rem; }
.contact-form textarea{ min-height: 130px; resize:vertical; }
.contact-form label{ font-size:.84rem; font-weight:600; color: var(--navy); display:block; margin-bottom:5px; }

/* JAVIER PROFILE */
.profile-hero{ display:grid; grid-template-columns: 230px 1fr; gap: 44px; align-items:center; }
@media (max-width: 760px){ .profile-hero{ grid-template-columns: 1fr; text-align:center; } }
.profile-photo{ width:210px; height:210px; border-radius:50%; overflow:hidden; border: 4px solid var(--accent); margin: 0 auto; }
.profile-photo img{ width:100%; height:100%; object-fit:cover; }
.badge-row{ display:flex; gap:10px; flex-wrap:wrap; margin-top: 18px; }
.badge{ background: rgba(201,161,90,.12); color: var(--accent-dark); border: 1px solid rgba(201,161,90,.35); padding: 6px 14px; border-radius: 30px; font-size:.78rem; font-weight:600; }

/* CLIENTS LIST (texto, sin logos) */
.client-list{ display:flex; flex-wrap:wrap; gap:14px; margin-top: 10px; }
.client-list span{ background: var(--grey-bg); border:1px solid #E7EBEF; padding:8px 16px; border-radius: 30px; font-size:.88rem; color: var(--navy); font-weight:600; }

/* LEGAL PAGES */
.legal-content h2{ margin-top:1.6em; }
.legal-content ul{ color: var(--text-muted); }
.legal-placeholder{ background:#FFF7E8; border:1px dashed var(--accent-dark); border-radius:var(--radius); padding:14px 18px; font-size:.85rem; color:#7A5A20; margin-bottom:2em; }

/* FOOTER */
.site-footer{ background: var(--navy); color: rgba(255,255,255,.7); padding: 56px 0 22px; }
.footer-grid{ display:grid; grid-template-columns: 2fr repeat(4, 1fr); gap: 30px; margin-bottom: 38px; }
@media (max-width: 760px){ .footer-grid{ grid-template-columns: 1fr 1fr; } }
.site-footer h4{ color: var(--white); font-size: .92rem; text-transform:uppercase; letter-spacing:.06em; margin-bottom: 16px; }
.site-footer ul{ list-style:none; padding:0; margin:0; }
.site-footer li{ margin-bottom:9px; }
.site-footer a{ color: rgba(255,255,255,.7); }
.site-footer a:hover{ color: var(--accent); }
.footer-bottom{ border-top:1px solid rgba(255,255,255,.12); padding-top: 20px; font-size:.8rem; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; }

/* COOKIE BANNER */
#physetech-cookie-banner{
  position:fixed; left:0; right:0; bottom:0; z-index:9999;
  background: var(--navy); color: rgba(255,255,255,.9);
  padding: 18px 24px; display:none;
  box-shadow: 0 -6px 24px rgba(0,0,0,.2);
}
#physetech-cookie-banner .cookie-inner{ max-width: var(--max-width); margin:0 auto; display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; }
#physetech-cookie-banner p{ margin:0; color: rgba(255,255,255,.85); font-size:.88rem; max-width:640px; }
#physetech-cookie-banner a{ color: var(--accent); }
.cookie-actions{ display:flex; gap:10px; flex-shrink:0; }
.cookie-actions button{ border:none; cursor:pointer; padding: 10px 20px; border-radius: var(--radius); font-family: var(--font-heading); font-weight:600; font-size:.85rem; }
.cookie-accept{ background: var(--accent); color: var(--navy); }
.cookie-reject{ background: transparent; color: rgba(255,255,255,.75); border: 1px solid rgba(255,255,255,.3) !important; }

.text-center{ text-align:center; }


/* Physetech v3 — service / sector / case-study cards */
.service-body ul,
.card ul { line-height: 1.75; }

.page-hero .lead { max-width: 820px; }

@media (max-width: 720px) {
  .page-hero h1 { font-size: 2.25rem; }
}


/* Physetech v4 — authority positioning */
.authority-note {
  border-left: 3px solid var(--gold, #C9A15A);
  padding-left: 20px;
}


/* Physetech v6 — production accessibility & responsive hardening */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
}
img, svg { max-width: 100%; height: auto; }
input, textarea, select { max-width: 100%; }
@media (max-width: 720px) {
  .container { width: min(100% - 32px, 1180px); }
  .grid-2, .grid-3, .grid-4, .grid-5 { grid-template-columns: 1fr; }
  .hero { padding-top: 72px; padding-bottom: 72px; }
  .section-head h2 { line-height: 1.15; }
}


/* Physetech v7 — unified internal page system */
.page-hero .lead { max-width: 820px; }
.page-hero .container { width: 100%; }
.card h3 { margin-top: 10px; }

/* Physetech v7.4 — contact form */
.physetech-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}.physetech-form-errors,.physetech-form-success{padding:1rem 1.25rem;margin-bottom:1.5rem}

/* Physetech v8.0 — physetech-contact-form was used in markup (Contact page) but never
   actually styled; adding real styles here (also fixes the Contact page's plain/unstyled
   submit button) and a white confidential-consultation card for forms placed on a dark
   cta-band (Private Investigation page), so labels stay readable on the dark background. */
.physetech-contact-form .physetech-form-field{ margin-bottom:15px; text-align:left; }
.physetech-contact-form label{ font-size:.84rem; font-weight:600; color: var(--navy); display:block; margin-bottom:5px; }
.physetech-contact-form input, .physetech-contact-form textarea{ width:100%; padding:13px 16px; border:1px solid #D8DEE4; border-radius:var(--radius); font-family: var(--font-body); font-size:.94rem; }
.physetech-contact-form textarea{ min-height:110px; resize:vertical; }
.physetech-button{ display:inline-block; padding:14px 30px; border-radius:var(--radius); font-weight:600; font-family:var(--font-heading); font-size:.93rem; letter-spacing:.02em; cursor:pointer; border:2px solid transparent; background: var(--accent); color: var(--navy); transition: all .2s ease; }
.physetech-button:hover{ background: var(--accent-dark); color: var(--white); }

.cta-band .cta-confidential-card{
  background: var(--white);
  border-radius: var(--radius);
  padding: 32px 34px 22px;
  margin-top: 28px;
  text-align: left;
  box-shadow: 0 20px 45px rgba(0,0,0,.18);
}
.cta-band .cta-confidential-card .physetech-button{ width:100%; }


/* V10 — authority / conversion layer */
.hero-v10 .container{max-width:1180px;}
.hero-split{display:grid;grid-template-columns:1.55fr .7fr;gap:70px;align-items:center;}
.hero-proof{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.16);border-radius:10px;overflow:hidden;}
.hero-proof div{padding:25px;background:rgba(11,30,51,.35);min-height:120px;}
.hero-proof strong{display:block;font:700 2rem var(--font-heading);color:var(--accent);}
.hero-proof span{display:block;color:rgba(255,255,255,.72);font-size:.82rem;margin-top:6px;}
.comparison-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;max-width:900px;margin:0 auto;}
.comparison-card{background:#fff;border:1px solid #E2E7EC;border-radius:8px;padding:34px;position:relative;}
.comparison-card.featured{border:2px solid var(--accent);box-shadow:0 16px 35px rgba(11,30,51,.08);}
.comparison-card ul{padding-left:20px;color:var(--text-muted);}.comparison-card li{margin-bottom:12px;}
.quote-highlight{margin:40px auto 0;max-width:900px;text-align:center;padding:28px;border-top:1px solid #DCE2E8;border-bottom:1px solid #DCE2E8;}
.quote-highlight strong{font:600 1.35rem/1.45 var(--font-heading);color:var(--navy);}
.stats-v10{gap:18px;}.stat-card{background:#fff;border:1px solid #E3E8ED;border-radius:8px;padding:28px;text-align:center;}.stat-card strong{display:block;font:700 2rem var(--font-heading);color:var(--navy);}.stat-card span{display:block;color:var(--text-muted);font-size:.84rem;margin-top:7px;}
.small-note{font-size:.78rem;max-width:850px;margin:24px auto 0;color:#73808C;}.text-link{font-weight:700;color:var(--accent-dark);display:inline-block;margin-top:16px;}
.sector-pills{display:flex;flex-wrap:wrap;gap:12px;}.sector-pills span{border:1px solid #DDE3E8;border-radius:30px;padding:10px 16px;color:var(--navy);font-weight:600;font-size:.86rem;background:#fff;}
.service-detail{margin-top:18px;padding-top:16px;border-top:1px solid #E7EBEF;font-size:.86rem;color:var(--text-muted);line-height:1.6;}
.mini-point{padding:24px;background:#fff;border:1px solid #E2E7EC;border-radius:8px;}.mini-point strong{display:block;color:var(--navy);font:600 1.05rem var(--font-heading);margin-bottom:7px;}.mini-point span{font-size:.86rem;color:var(--text-muted);}
.process-line{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;}.process-line>div{padding:24px 18px;border-top:3px solid var(--accent);background:#fff;border:1px solid #E5E9ED;border-top-width:3px;}.process-line b{font-size:.90rem;color:var(--accent-dark);}.process-line h3{margin-top:8px;}.process-line p{font-size:.85rem;}
.feature-panel{background:linear-gradient(135deg,var(--navy),var(--navy-light));color:#fff;border-radius:10px;padding:48px;}.feature-panel h2{color:#fff;max-width:760px;}.feature-panel p{color:rgba(255,255,255,.78);max-width:800px;}.feature-panel .text-link{color:var(--accent);}
.case-card{background:#fff;border:1px solid #E1E6EB;border-radius:8px;padding:34px;}.case-metric{font:700 2.6rem var(--font-heading);color:var(--navy);margin:8px 0;}.case-result{margin-top:24px;padding:18px;background:var(--grey-bg);border-left:3px solid var(--accent);}.case-result strong{display:block;color:var(--navy);font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;}.case-result span{display:block;color:var(--text-muted);margin-top:5px;font-size:.9rem;}
.insight-card{border:1px solid #E1E6EB;border-radius:8px;padding:34px;background:#fff;}.insight-card h3{font-size:1.35rem;}.coming-soon{display:inline-block;margin-top:10px;font-size:.90rem;text-transform:uppercase;letter-spacing:.08em;color:var(--accent-dark);font-weight:700;}
.contact-trust{margin-top:28px;padding:22px;background:var(--grey-bg);border-left:3px solid var(--accent);}.contact-trust strong{display:block;color:var(--navy);}.contact-trust span{display:block;color:var(--text-muted);font-size:.84rem;margin-top:7px;}.contact-form-wrapper{background:#fff;border:1px solid #E1E6EB;border-radius:8px;padding:32px;box-shadow:0 12px 30px rgba(11,30,51,.05);}.contact-form-v10 label{display:block;font-size:.82rem;font-weight:700;color:var(--navy);margin:0 0 6px;}.contact-form-v10 input,.contact-form-v10 textarea,.contact-form-v10 select{width:100%;padding:13px 14px;border:1px solid #D5DDE4;border-radius:5px;margin-bottom:17px;font:inherit;color:var(--text-dark);background:#fff;}.contact-form-v10 textarea{resize:vertical;}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden;}.form-success,.form-error{padding:24px;border-radius:6px;background:var(--grey-bg);}.form-error{border-left:3px solid #B35A5A;}.footer-trust{padding-top:12px;padding-bottom:12px;font-size:.78rem;color:#74818D;text-align:center;}
@media(max-width:900px){.hero-split,.comparison-grid{grid-template-columns:1fr;}.hero-proof{max-width:600px;}.process-line{grid-template-columns:1fr;}.hero{padding:76px 0 68px;}}
@media(max-width:600px){.hero-proof{grid-template-columns:1fr 1fr;}.hero-proof div{min-height:auto;padding:18px;}.hero-proof strong{font-size:1.5rem;}.feature-panel{padding:30px 24px;}.contact-form-wrapper{padding:22px;}}

/* V20.5 — credibility, deliverables and compact service presentation */
.service-card .service-detail{margin-top:10px;}
.deliverables{margin-top:20px;padding-top:16px;border-top:1px solid #E7EBEF;}
.deliverables>span{display:block;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;font-weight:700;color:var(--navy);margin-bottom:8px;}
.deliverables ul{margin:0;padding-left:18px;color:var(--text-muted);font-size:.86rem;}
.deliverables li{margin:3px 0;}
.process-six{grid-template-columns:repeat(6,1fr)!important;}
@media(max-width:1000px){.process-six{grid-template-columns:repeat(3,1fr)!important;}}
@media(max-width:650px){.process-six{grid-template-columns:1fr!important;}}
.quote-highlight-primary{padding:34px 38px!important;text-align:center;border-left:4px solid var(--accent);background:#fff;box-shadow:0 10px 28px rgba(11,30,51,.06);}
.quote-highlight-primary strong{display:block;font-size:clamp(1.25rem,2.2vw,1.65rem)!important;max-width:900px;margin:0 auto;}
.feature-panel-section{padding:0 0 76px;}

/* V20.51 — outcomes, credibility and client clarity */
.need-card .need-outcome{margin-top:18px;padding-top:16px;border-top:1px solid #E7EBEF;}
.need-card .need-outcome strong{display:block;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;color:var(--navy);margin-bottom:6px;}
.need-card .need-outcome p{margin:0;color:var(--navy);font-weight:600;}
.service-home-card .service-home-deliverables{margin-top:18px;padding-top:14px;border-top:1px solid #E7EBEF;}
.service-home-card .service-home-deliverables strong{display:block;text-transform:uppercase;letter-spacing:.08em;font-size:.7rem;color:var(--navy);margin-bottom:7px;}
.service-home-card .service-home-deliverables span{display:block;font-size:.82rem;color:var(--text-muted);line-height:1.55;}
.outcome-grid .card h3{font-size:1.08rem;}
.case-card-detailed .case-meta{margin:18px 0;padding:13px 0;border-top:1px solid #E7EBEF;border-bottom:1px solid #E7EBEF;}
.case-card-detailed .case-meta strong,.case-card-detailed .case-section>strong{display:block;text-transform:uppercase;letter-spacing:.08em;font-size:.7rem;color:var(--navy);margin-bottom:6px;}
.case-card-detailed .case-meta span{font-size:.88rem;color:var(--text-muted);}
.case-card-detailed .case-section{margin-top:16px;}
.case-card-detailed .case-section p{margin:0;color:var(--text-muted);font-size:.9rem;line-height:1.65;}
@media(max-width:900px){.outcome-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:650px){.outcome-grid{grid-template-columns:1fr;}}


/* V25.4 - supplier information */
.supplier-table{border:1px solid #D8DEE4;border-radius:var(--radius);overflow:hidden;background:#fff}.supplier-table>div{display:grid;grid-template-columns:minmax(210px,.7fr) 1.3fr;gap:24px;padding:17px 20px;border-bottom:1px solid #E7EBEF}.supplier-table>div:last-child{border-bottom:0}.supplier-table strong{color:var(--navy)}.supplier-table span{color:var(--text-muted)}
@media(max-width:700px){.supplier-table>div{grid-template-columns:1fr;gap:6px}}

/* V25.4 — Header Resources menu for the new continuity and supplier pages */
.header-resources{ position:relative; }
.resources-toggle{
  display:block;
  border:0;
  background:transparent;
  color:var(--navy);
  font:600 .94rem/1.2 var(--font-body);
  padding:6px 0;
  cursor:pointer;
  white-space:nowrap;
}
.resources-toggle span{ font-size:.72em; margin-left:3px; }
.resources-toggle:hover{ color:var(--accent-dark); }
.resources-menu{
  display:none;
  position:absolute;
  top:calc(100% + 8px);
  right:0;
  min-width:235px;
  margin:0;
  padding:8px;
  list-style:none;
  background:var(--white);
  border:1px solid #E1E6EB;
  border-radius:8px;
  box-shadow:0 12px 28px rgba(11,30,51,.14);
  z-index:1002;
}
.header-resources.is-open .resources-menu{ display:block; }
.resources-menu li{ margin:0; padding:0; }
.resources-menu a{
  display:block;
  padding:9px 11px;
  color:var(--navy);
  font-size:.84rem;
  font-weight:600;
  white-space:nowrap;
  border-radius:5px;
}
.resources-menu a:hover{ background:var(--grey-bg); color:var(--accent-dark); }
@media (max-width:860px){
  .header-resources{ position:static; }
  .resources-toggle{ width:100%; text-align:left; padding:11px 2px; font-size:.88rem; }
  .resources-menu{ position:static; min-width:0; margin:0; padding:0 0 6px 12px; border:0; border-radius:0; box-shadow:none; background:transparent; }
  .header-resources.is-open .resources-menu{ display:block; }
  .resources-menu a{ padding:9px 2px; font-size:.84rem; }
}
@media (max-width:520px){
  .resources-toggle{ font-size:.84rem; }
}

/* V25.4 — give the footer room for the dedicated Resources column */
.footer-grid{ grid-template-columns: 2fr 1fr 1fr 1fr 1fr; }
@media (max-width:1000px){ .footer-grid{ grid-template-columns: 2fr 1fr 1fr 1fr; } }
@media (max-width:760px){ .footer-grid{ grid-template-columns:1fr 1fr; } }


/* V25.6 — Two-row desktop header: full navigation, balanced hierarchy */
@media (min-width: 861px){
  .site-header{min-height:166px;}
  .header-top{
    min-height:106px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:30px;
    padding-top:10px;
    padding-bottom:10px;
  }
  .site-logo{
    flex:0 0 auto;
    width:auto;
    height:86px;
    align-items:center;
  }
  .site-logo img{
    width:auto !important;
    height:86px !important;
    max-width:none !important;
    max-height:86px !important;
    object-fit:contain;
  }
  .header-top .header-cta{margin-left:auto;}
  .header-nav-row{
    border-top:1px solid #EEF1F4;
    border-bottom:1px solid #E2E7EC;
    background:#fff;
  }
  .header-nav-row .container{
    min-height:60px;
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .main-nav{width:100%;}
  .main-nav > ul{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-wrap:nowrap;
    gap:12px;
    margin:0;
    padding:0;
  }
  .main-nav li{flex:0 0 auto;}
  .main-nav a{
    font-size:.91rem;
    font-weight:600;
    padding:19px 5px;
    text-align:center;
  }
  .main-nav .nav-contact-link{
    padding-left:14px;
    padding-right:14px;
    border:1px solid var(--navy);
    border-radius:4px;
  }
  .main-nav .nav-contact-link:hover{
    background:var(--navy);
    color:#fff;
  }
}

@media (max-width: 860px){
  .header-top{
    min-height:92px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
  }
  .site-logo{width:auto;height:72px;flex:0 0 auto;}
  .site-logo img{width:auto !important;height:72px !important;max-width:145px !important;object-fit:contain;}
  .header-nav-row{border-top:1px solid #EEF1F4;}
  .header-nav-row .container{padding-top:0;padding-bottom:0;}
  .main-nav{display:none;}
  .main-nav.is-open{display:block;}
  .main-nav > ul{display:flex;flex-direction:column;align-items:stretch;gap:0;padding:8px 0;}
  .main-nav a{display:flex;width:100%;justify-content:space-between;padding:11px 2px;font-size:.94rem;}
  .main-nav .nav-contact-link{border:0;border-radius:0;}
}

@media (max-width: 520px){
  .header-top{min-height:82px;}
  .site-logo{height:62px;}
  .site-logo img{height:62px !important;max-width:125px !important;}
}

/* ===========================================================
   V25.9 — MOBILE NAVIGATION / LINK ACCESSIBILITY HARDENING
   Fixes the mobile menu positioning and tap targets, especially
   About and the lower navigation items on small screens.
=========================================================== */
@media (max-width: 860px){
  .header-nav-row{position:relative;z-index:1000;}
  .header-nav-inner{position:relative;min-height:56px;padding:0 18px;display:flex;align-items:center;justify-content:flex-end;}
  .nav-toggle{position:relative;z-index:1102;display:inline-flex;align-items:center;justify-content:center;flex:0 0 42px;width:42px;height:42px;line-height:1;}
  .main-nav{position:absolute !important;top:100% !important;left:0 !important;right:0 !important;width:100% !important;display:none;z-index:1101;background:var(--white);border-top:1px solid #E7EBEF;box-shadow:0 12px 24px rgba(11,30,51,.12);pointer-events:auto;}
  .main-nav.is-open{display:block !important;}
  .main-nav > ul{display:flex !important;flex-direction:column !important;align-items:stretch !important;justify-content:flex-start !important;gap:0 !important;margin:0 !important;padding:6px 18px 12px !important;white-space:normal !important;max-height:calc(100vh - 145px);overflow-y:auto;-webkit-overflow-scrolling:touch;}
  .main-nav li{display:block !important;width:100% !important;flex:0 0 auto !important;border-bottom:1px solid #EEF1F4;}
  .main-nav li:last-child{border-bottom:0;}
  .main-nav a{display:flex !important;width:100% !important;min-height:46px;align-items:center;justify-content:flex-start !important;padding:12px 4px !important;font-size:.94rem !important;line-height:1.25 !important;color:var(--navy) !important;text-align:left;white-space:normal !important;position:relative;z-index:1103;pointer-events:auto;}
  .main-nav a:hover,.main-nav a:focus{color:var(--accent-dark) !important;}
}

@media (max-width:520px){
  .header-nav-inner{min-height:54px;padding:0 14px;}
  .main-nav > ul{padding-left:14px !important;padding-right:14px !important;max-height:calc(100vh - 132px);}
  .main-nav a{font-size:.93rem !important;min-height:48px;padding:13px 4px !important;}
}


/* V25.9.1 — final mobile navigation reliability layer */
@media (max-width: 860px){
  .site-header{position:relative;z-index:2000;}
  .header-nav-row{position:relative;z-index:2050;overflow:visible;}
  .header-nav-inner{position:relative;z-index:2051;overflow:visible;}
  .nav-toggle{display:inline-flex !important;position:relative;z-index:2053;cursor:pointer;touch-action:manipulation;}
  .main-nav{position:absolute !important;top:100% !important;left:0 !important;right:0 !important;width:100% !important;z-index:2052 !important;visibility:hidden;opacity:0;display:block !important;transform:translateY(-6px);transition:opacity .16s ease,transform .16s ease,visibility .16s ease;pointer-events:none;}
  .main-nav.is-open{visibility:visible;opacity:1;transform:translateY(0);pointer-events:auto;}
  .main-nav > ul{max-height:calc(100vh - 120px) !important;overflow-y:auto !important;overscroll-behavior:contain;}
  .main-nav a{min-height:48px !important;padding:13px 8px !important;touch-action:manipulation;}
}
@media (max-width:520px){
  .main-nav > ul{max-height:calc(100vh - 110px) !important;}
  .main-nav a{min-height:50px !important;}
}


/* ===========================================================
   V25.9.2 — MOBILE NAVIGATION REBUILD
   The mobile menu is taken out of the header stacking context and
   positioned directly below the navigation row. This avoids clipped
   or untappable links on iOS/Android, including About and the lower
   navigation items.
=========================================================== */
.mobile-only-contact{display:none !important;}
@media (max-width:860px){
  .site-header{position:sticky !important;top:0 !important;z-index:3000 !important;}
  .header-topbar,.header-nav-row{position:relative;z-index:3001;overflow:visible !important;}
  .header-nav-inner{position:relative;z-index:3002;overflow:visible !important;}
  .nav-toggle{position:relative !important;z-index:3005 !important;touch-action:manipulation !important;}
  .main-nav{
    position:fixed !important;
    top:var(--mobile-menu-top,140px) !important;
    left:0 !important;right:0 !important;width:100vw !important;
    max-height:calc(100vh - var(--mobile-menu-top,140px) - 12px) !important;
    overflow:hidden !important;
    margin:0 !important;padding:0 !important;
    background:#fff !important;
    border-top:1px solid #DCE2E8 !important;
    border-bottom:3px solid var(--navy) !important;
    box-shadow:0 16px 32px rgba(11,30,51,.18) !important;
    visibility:hidden !important;opacity:0 !important;
    transform:translateY(-4px) !important;
    pointer-events:none !important;
    z-index:3004 !important;
    transition:opacity .14s ease,transform .14s ease,visibility .14s ease !important;
  }
  .main-nav.is-open{
    visibility:visible !important;opacity:1 !important;transform:none !important;
    pointer-events:auto !important;
  }
  .main-nav > ul{
    display:flex !important;flex-direction:column !important;align-items:stretch !important;
    width:100% !important;max-height:calc(100vh - var(--mobile-menu-top,140px) - 12px) !important;
    overflow-y:auto !important;overflow-x:hidden !important;
    -webkit-overflow-scrolling:touch !important;
    overscroll-behavior:contain !important;
    margin:0 !important;padding:4px 18px 10px !important;gap:0 !important;
  }
  .main-nav li{display:block !important;width:100% !important;min-width:0 !important;border-bottom:1px solid #EEF1F4 !important;}
  .main-nav li:last-child{border-bottom:0 !important;}
  .main-nav a{
    display:flex !important;width:100% !important;min-height:52px !important;
    align-items:center !important;justify-content:flex-start !important;
    padding:14px 8px !important;margin:0 !important;
    color:var(--navy) !important;background:#fff !important;
    font-size:.96rem !important;font-weight:600 !important;line-height:1.25 !important;
    text-align:left !important;white-space:normal !important;
    pointer-events:auto !important;touch-action:manipulation !important;
    position:relative !important;z-index:3006 !important;
  }
  .main-nav a:active{background:#F4F6F8 !important;}
  .mobile-only-contact{display:block !important;}
  html.mobile-nav-open,html.mobile-nav-open body{overflow:hidden;}
}
@media (max-width:520px){
  .main-nav > ul{padding-left:14px !important;padding-right:14px !important;}
  .main-nav a{min-height:54px !important;font-size:.95rem !important;padding:15px 8px !important;}
}


/* V25.9.3 — clean mobile navigation layer
   Replaces the accumulated mobile-nav rules with one deterministic layout.
   The menu is fixed to the viewport and each navigation item is a direct,
   full-width touch target. */
@media (max-width: 860px){
  .site-header{position:sticky !important;top:0 !important;z-index:5000 !important;}
  .header-topbar{position:relative !important;z-index:5001 !important;overflow:visible !important;}
  .header-nav-row{position:relative !important;z-index:5002 !important;overflow:visible !important;}
  .header-nav-inner{position:relative !important;z-index:5003 !important;overflow:visible !important;}
  .nav-toggle{position:relative !important;z-index:5010 !important;touch-action:manipulation !important;}
  .main-nav{
    position:fixed !important;
    top:var(--physetech-mobile-nav-top,140px) !important;
    left:0 !important;
    right:0 !important;
    width:100% !important;
    height:auto !important;
    max-height:calc(100dvh - var(--physetech-mobile-nav-top,140px) - 8px) !important;
    margin:0 !important;
    padding:0 !important;
    display:block !important;
    background:#fff !important;
    border-top:1px solid #DCE2E8 !important;
    border-bottom:4px solid var(--navy) !important;
    box-shadow:0 14px 30px rgba(11,30,51,.20) !important;
    visibility:hidden !important;
    opacity:0 !important;
    transform:none !important;
    pointer-events:none !important;
    z-index:5008 !important;
    overflow:hidden !important;
  }
  .main-nav.is-open{
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:auto !important;
  }
  .main-nav > ul{
    display:block !important;
    width:100% !important;
    max-height:calc(100dvh - var(--physetech-mobile-nav-top,140px) - 8px) !important;
    margin:0 !important;
    padding:4px 14px 10px !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    -webkit-overflow-scrolling:touch !important;
    list-style:none !important;
  }
  .main-nav li,
  .main-nav li.mobile-only-contact{
    display:block !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
    border-bottom:1px solid #E9EDF1 !important;
  }
  .main-nav li:last-child{border-bottom:0 !important;}
  .main-nav li > a{
    display:flex !important;
    box-sizing:border-box !important;
    width:100% !important;
    min-height:54px !important;
    height:54px !important;
    margin:0 !important;
    padding:14px 10px !important;
    align-items:center !important;
    justify-content:flex-start !important;
    color:var(--navy) !important;
    background:#fff !important;
    font-size:1rem !important;
    font-weight:600 !important;
    line-height:1.2 !important;
    text-align:left !important;
    text-decoration:none !important;
    white-space:normal !important;
    position:static !important;
    pointer-events:auto !important;
    touch-action:manipulation !important;
    -webkit-tap-highlight-color:rgba(11,30,51,.08) !important;
  }
  .main-nav li > a:active,
  .main-nav li > a:focus{background:#F3F6F8 !important;color:var(--navy) !important;}
  html.mobile-nav-open,html.mobile-nav-open body{overflow:hidden !important;}
}
/* V27.0 consolidation */
.process-line.process-six{grid-template-columns:repeat(6,1fr);}
@media(max-width:1100px){.process-line.process-six{grid-template-columns:repeat(3,1fr);}}
@media(max-width:760px){.process-line.process-six{grid-template-columns:1fr;}}

@media (max-width: 860px){
  .main-nav .nav-submenu{display:block !important;position:static !important;min-width:0 !important;padding:0 0 0 14px !important;background:transparent !important;border:0 !important;box-shadow:none !important;}
  .main-nav .nav-submenu li{border-bottom:1px solid #F1F3F5 !important;}
  .main-nav .nav-submenu a{font-size:.88rem !important;min-height:40px !important;padding:10px 8px 10px 14px !important;}
}

/* V28.0 — conversion and trust refinements */
.cta-actions{display:flex;justify-content:center;align-items:center;gap:14px;flex-wrap:wrap;margin-top:24px}
.cta-microcopy{margin:16px 0 0!important;font-size:.9rem!important;opacity:.72}
.contact-direct{display:flex;flex-direction:column;gap:4px;margin-top:18px;padding-top:16px;border-top:1px solid rgba(11,30,51,.12)}
.contact-direct strong{font-size:1rem}
.contact-direct span{font-size:.9rem;opacity:.75}
@media (max-width:600px){.cta-actions{flex-direction:column}.cta-actions .btn{width:100%;text-align:center}.cta-microcopy{font-size:.82rem!important}}

/* V29.1 multilingual standalone pages */
.lang-block{display:none}
body.lang-en .lang-en, body.lang-es .lang-es, body.lang-fr .lang-fr{display:block}

/* V29.2 commercial validation */
.physetech-credentials,.case-study-impact-framework{margin:48px 0}
.credentials-grid,.case-study-framework-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.credentials-grid>div,.case-study-framework-grid>div{padding:22px;border:1px solid rgba(0,0,0,.12);border-radius:8px}
.enterprise-enquiry-fields{margin-top:28px;padding-top:20px;border-top:1px solid rgba(0,0,0,.12)}
.enterprise-enquiry-fields label{display:block;margin:14px 0;font-weight:600}
.enterprise-enquiry-fields input,.enterprise-enquiry-fields select{display:block;width:100%;margin-top:7px;padding:11px;box-sizing:border-box}
@media(max-width:800px){.credentials-grid,.case-study-framework-grid{grid-template-columns:1fr}}


/* V29.3 — final mobile navigation hardening (iOS Safari + Android Chrome) */
@media (max-width:860px){
  html.mobile-nav-open,
  html.mobile-nav-open body{
    overflow:hidden !important;
    overscroll-behavior:none !important;
    -webkit-overflow-scrolling:auto !important;
    height:100% !important;
  }
  .main-nav{
    max-height:calc(100dvh - var(--physetech-mobile-nav-top,140px) - env(safe-area-inset-bottom,0px)) !important;
    -webkit-transform:translateZ(0) !important;
    transform:translateZ(0) !important;
    overscroll-behavior:contain !important;
  }
  .main-nav > ul{
    height:calc(100dvh - var(--physetech-mobile-nav-top,140px) - env(safe-area-inset-bottom,0px) - 14px) !important;
    max-height:none !important;
    overscroll-behavior:contain !important;
    -webkit-overflow-scrolling:touch !important;
    touch-action:pan-y !important;
    scrollbar-width:thin;
  }
  .main-nav li > a{
    -webkit-user-select:none;
    user-select:none;
  }
}
@supports not (height:100dvh){
  @media (max-width:860px){
    .main-nav{max-height:calc(100vh - var(--physetech-mobile-nav-top,140px) - 8px) !important;}
    .main-nav > ul{height:calc(100vh - var(--physetech-mobile-nav-top,140px) - 22px) !important;}
  }
}


/* V29.4.3 — authoritative mobile navigation layer
   Keep the page locked while the menu is open, but make the menu list
   itself the only scroll container. This avoids the iOS Safari 100vh
   bounce/freeze pattern and avoids competing overflow rules. */
@media (max-width:860px){
  html.mobile-nav-open,
  html.mobile-nav-open body{
    overflow:hidden !important;
    height:100% !important;
    overscroll-behavior:none !important;
  }

  .main-nav.is-open{
    position:fixed !important;
    top:var(--physetech-mobile-nav-top,140px) !important;
    left:0 !important;
    right:0 !important;
    width:100vw !important;
    height:calc(100dvh - var(--physetech-mobile-nav-top,140px)) !important;
    max-height:calc(100dvh - var(--physetech-mobile-nav-top,140px)) !important;
    overflow:hidden !important;
    -webkit-transform:translateZ(0);
    transform:translateZ(0);
  }

  .main-nav.is-open > ul{
    height:100% !important;
    max-height:none !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    -webkit-overflow-scrolling:touch !important;
    overscroll-behavior:contain !important;
    touch-action:pan-y !important;
    padding-bottom:calc(18px + env(safe-area-inset-bottom,0px)) !important;
  }

  .main-nav.is-open a{
    touch-action:manipulation !important;
    -webkit-tap-highlight-color:rgba(11,30,51,.08);
  }
}

@supports not (height:100dvh){
  @media (max-width:860px){
    .main-nav.is-open{
      height:calc(100vh - var(--physetech-mobile-nav-top,140px)) !important;
      max-height:calc(100vh - var(--physetech-mobile-nav-top,140px)) !important;
    }
  }
}

/* Android/WebKit fallback for legacy embedded browsers. */
@supports (display:-webkit-box){
  .header-nav-inner,
  .header-actions,
  .header-action-top{
    display:-webkit-box;
    display:-webkit-flex;
    display:flex;
  }
}


/* V30 — architecture: compact homepage, linked service/sector detail pages */
.sector-pills .sector-pill-link{display:inline-flex;align-items:center;text-decoration:none;color:inherit;border:1px solid rgba(201,161,90,.35);padding:.65rem .9rem;margin:.25rem;border-radius:999px;transition:all .2s ease}
.sector-pills .sector-pill-link:hover{border-color:#C9A15A;transform:translateY(-1px)}
@media (max-width: 900px){.main-nav .nav-submenu{max-height:none}.main-nav .nav-submenu li a{white-space:normal}.home-hero .lead{max-width:760px}}


/* V30.1 — final mobile audit guardrails */
@media (max-width:860px){
  html, body{max-width:100%;overflow-x:hidden;}
  .main-nav.is-open{
    height:calc(100dvh - var(--physetech-mobile-nav-top,140px) - env(safe-area-inset-bottom,0px)) !important;
    max-height:calc(100dvh - var(--physetech-mobile-nav-top,140px) - env(safe-area-inset-bottom,0px)) !important;
  }
  .main-nav.is-open > ul{
    min-height:0 !important;
    overscroll-behavior-y:contain !important;
    -webkit-overflow-scrolling:touch !important;
  }
}
@supports not (height:100dvh){
  @media (max-width:860px){
    .main-nav.is-open{
      height:calc(100vh - var(--physetech-mobile-nav-top,140px) - env(safe-area-inset-bottom,0px)) !important;
      max-height:calc(100vh - var(--physetech-mobile-nav-top,140px) - env(safe-area-inset-bottom,0px)) !important;
    }
  }
}
