:root {
  --navy: #142F45;
  --navy-2: #0E2233;
  --bg: #F7F8FA;
  --line: #E6E8EC;
  --muted: #5A6B7A;
  --white: #ffffff;
  --shadow: 0 10px 30px rgba(14,34,51,.08);
  --radius: 18px;
  --max: 1120px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  color: var(--navy-2);
  background: var(--bg);
  line-height: 1.6;
}
img { max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
p { margin: 0 0 1rem; }
h1, h2, h3 {
  font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  letter-spacing: .2px;
  margin: 0 0 .75rem;
  line-height: 1.15;
}
h1 { font-size: clamp(2.2rem, 3.8vw, 3.4rem); font-weight: 700; }
h2 { font-size: clamp(1.6rem, 2.4vw, 2.2rem); font-weight: 650; }
h3 { font-size: 1.25rem; font-weight: 650; }

.container {
  width: min(var(--max), calc(100% - 3rem));
  margin: 0 auto;
}
.section {
  padding: clamp(3rem, 5vw, 4.5rem) 0;
}
.card {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.grid {
  display: grid;
  gap: 1.25rem;
}
.grid-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.grid-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
@media (max-width: 920px) {
  .grid-3 { grid-template-columns: 1fr; }
}
@media (max-width: 860px) {
  .grid-2 { grid-template-columns: 1fr; }
}

.topbar {
  position: sticky;
  top: 0;
  z-index: 50;
  backdrop-filter: blur(10px);
  background: rgba(247,248,250,.78);
  border-bottom: 1px solid rgba(230,232,236,.75);
}
.nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  /* More condensed header */
  padding: .32rem 0;
}
.brand {
  display: flex;
  align-items: center;
  gap: .75rem;
}
/* Logo: present and legible, but not invasive */
.brand img { width: 72px; height: auto; }
.menu {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  font-size: .95rem;
}
.menu a {
  padding: .55rem .7rem;
  border-radius: 999px;
  color: rgba(14,34,51,.86);
}
.menu a:hover { background: rgba(20,47,69,.06); }
.menu a.active { background: rgba(20,47,69,.08); color: var(--navy-2); }
.menu a.contact-pill {
  border: 1px solid rgba(20,47,69,.22);
}
.menu a.contact-pill:hover {
  background: rgba(20,47,69,.08);
}
.burger {
  display: none;
  border: 1px solid rgba(20,47,69,.22);
  background: transparent;
  border-radius: 12px;
  padding: .55rem .6rem;
}
.burger span {
  display: block;
  width: 20px;
  height: 2px;
  background: rgba(14,34,51,.82);
  margin: 4px 0;
}
@media (max-width: 860px) {
  .burger { display: inline-block; }
  .menu {
    position: absolute;
    top: 54px;
    right: 1.5rem;
    left: 1.5rem;
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: .5rem;
    padding: .75rem;
    background: rgba(255,255,255,.95);
    border: 1px solid var(--line);
    border-radius: 16px;
    box-shadow: var(--shadow);
  }
  .menu.open { display: flex; }
  .menu a { display: block; }
}

.hero {
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid rgba(230,232,236,.8);
}
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(14,34,51,.88), rgba(14,34,51,.55));
  z-index: 0;
}
.hero-bg {
  position: absolute;
  inset: 0;
  z-index: -1;
  background-size: cover;
  background-position: center;
  filter: grayscale(100%);
  transform: scale(1.02);
}
.hero-inner {
  position: relative;
  z-index: 2;
  padding: clamp(4.2rem, 7vw, 6.5rem) 0;
  color: #fff;
}
.hero-inner p {
  color: rgba(255,255,255,.86);
  max-width: 62ch;
}
.hero-kicker {
  font-size: .95rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(255,255,255,.75);
  margin-bottom: .8rem;
}
.btn {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  padding: .85rem 1.1rem;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.38);
  color: #fff;
  background: rgba(255,255,255,.08);
  transition: transform .12s ease, background .12s ease;
  font-size: .95rem;
}
.btn:hover {
  background: rgba(255,255,255,.12);
  transform: translateY(-1px);
}
.muted {
  color: var(--muted);
  font-size: .95rem;
}
.hr {
  height: 1px;
  background: var(--line);
  margin: 1.4rem 0;
}
.kpi {
  padding: 1.25rem 1.25rem 1.1rem;
}
.kpi h3 {
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
  font-weight: 600;
  margin: 0 0 .3rem;
  font-size: 1.02rem;
}
.kpi p {
  color: rgba(14,34,51,.72);
  margin: 0;
  font-size: .98rem;
}

.list {
  margin: .2rem 0 0;
  padding-left: 1.15rem;
}
.list li {
  margin: .55rem 0;
}
.accordion {
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--white);
  overflow: hidden;
  box-shadow: var(--shadow);
}
.acc-item + .acc-item {
  border-top: 1px solid var(--line);
}
.acc-btn {
  width: 100%;
  text-align: left;
  background: transparent;
  border: 0;
  padding: 1.1rem 1.15rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  gap: 1rem;
}
.acc-btn strong {
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
  font-weight: 600;
  font-size: 1rem;
}
.acc-btn span {
  color: rgba(14,34,51,.55);
}
.acc-panel {
  padding: 0 1.15rem 1.15rem;
  display: none;
}
.acc-item.open .acc-panel {
  display: block;
}
.acc-item.open .acc-btn {
  background: rgba(20,47,69,.05);
}

.footer {
  border-top: 1px solid rgba(230,232,236,.9);
  padding: 2.2rem 0;
  color: rgba(14,34,51,.68);
  font-size: .92rem;
}
.footer a {
  color: rgba(14,34,51,.72);
}
.footer a:hover {
  color: rgba(14,34,51,.92);
}
.footer-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
}

.cookie {
  position: fixed;
  left: 1.25rem;
  right: 1.25rem;
  bottom: 1.25rem;
  z-index: 70;
  display: block;
}
.cookie-inner {
  width: min(var(--max), calc(100% - 0rem));
  margin: 0 auto;
  background: rgba(255,255,255,.97);
  border: 1px solid var(--line);
  border-radius: 16px;
  box-shadow: var(--shadow);
  padding: 1rem 1rem;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}
.cookie p {
  margin: 0;
  color: rgba(14,34,51,.78);
  max-width: 80ch;
}
.cookie .btn {
  color: var(--navy-2);
  background: rgba(20,47,69,.08);
  border-color: rgba(20,47,69,.18);
}
.cookie .btn:hover {
  background: rgba(20,47,69,.12);
}

/* ====== IMS refinements (v6.2) ====== */

/* Brand / logo presence */
.brand img { width: 190px; height: auto; }
@media (max-width: 860px) { .brand img { width: 170px; } }

/* Header layout */
.header-right{
  display:flex;
  align-items:center;
  gap: .85rem;
}
@media (max-width: 860px){
  .header-right{ gap:.65rem; }
}

/* Language switch */
.lang-switch{
  display:flex;
  align-items:center;
  gap:.45rem;
  padding-left:.75rem;
  margin-left: 1.1rem;
  border-left:1px solid rgba(230,232,236,.55);
}
.lang-flag{
  opacity: .78;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width: 28px;
  height: 28px;
  border-radius:999px;
  border:1px solid rgba(20,47,69,.18);
  background: rgba(255,255,255,.7);
  box-shadow: 0 6px 18px rgba(14,34,51,.06);
  transition: transform .15s ease, background .15s ease, border-color .15s ease;
  font-size: 18px;
}
.lang-flag:hover{
  transform: translateY(-1px);
  background: rgba(255,255,255,.92);
  border-color: rgba(20,47,69,.26);
}
.lang-more{
  position:relative;
}
.lang-more-btn{
  width:34px;
  height:34px;
  border-radius:999px;
  border:1px solid rgba(20,47,69,.18);
  background: rgba(255,255,255,.7);
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  box-shadow: 0 6px 18px rgba(14,34,51,.06);
  transition: background .15s ease, border-color .15s ease, transform .15s ease;
}
.lang-more-btn:hover{
  transform: translateY(-1px);
  background: rgba(255,255,255,.92);
  border-color: rgba(20,47,69,.26);
}
.lang-dropdown{
  position:absolute;
  right:0;
  top:42px;
  min-width: 190px;
  background: rgba(255,255,255,.98);
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: var(--shadow);
  padding: .35rem;
  z-index: 80;
}
.lang-dropdown button{
  width:100%;
  text-align:left;
  border:0;
  background: transparent;
  padding: .55rem .65rem;
  border-radius: 10px;
  cursor:pointer;
  font-size: .92rem;
  color: rgba(14,34,51,.86);
}
.lang-dropdown button:hover{ background: rgba(20,47,69,.06); }
@media (max-width: 860px){
  .lang-switch{ padding-left:.55rem; margin-left:.1rem; }
  .lang-dropdown{ left:auto; right:0; }
}

/* Subtle motion (respect reduced motion) */
@media (prefers-reduced-motion: no-preference){
  .hero-bg{
    transform: scale(1.05);
    animation: heroZoom 18s ease-in-out infinite alternate;
  }
  @keyframes heroZoom{
    from{ transform: scale(1.03); }
    to{ transform: scale(1.085); }
  }
}

/* Footer refinements */
.footer{
  padding: 1.55rem 0;
}
.footer-row{
  align-items: flex-end;
}
.footer-left{
  display:flex;
  flex-direction:column;
  gap:.55rem;
}
.footer-brand{
  display:flex;
  align-items:center;
  gap:.85rem;
}
.footer-logo{
  width: 120px;
  height:auto;
}
.footer-note{
  color: rgba(14,34,51,.62);
  font-size: .9rem;
}
.footer-right{
  text-align:right;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:.35rem;
}
.footer-links{
  font-size: .9rem;
  color: rgba(14,34,51,.62);
}
.footer-company{
  font-size: .82rem;
  color: rgba(14,34,51,.48);
}
@media (max-width: 860px){
  .footer-right{ text-align:left; align-items:flex-start; }
  .footer-logo{ width: 110px; }
}

/* CTA panel (more discreet) */
.cta-panel{
  background: linear-gradient(180deg, rgba(247,248,250,.6), rgba(255,255,255,1));
  border: 1px solid rgba(230,232,236,.95);
  box-shadow: 0 10px 30px rgba(14,34,51,.06);
}
.cta-panel .cta-copy{
  color: rgba(14,34,51,.72);
}

/* Accordion: highlight open */
.acc-item.open .acc-btn strong{
  font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  font-weight: 700;
  font-size: 1.08rem;
  letter-spacing: .2px;
}
.acc-btn strong{ transition: font-size .18s ease, letter-spacing .18s ease; }
.acc-btn .chev{ transition: transform .18s ease; }
.acc-item.open .acc-btn .chev{ transform: rotate(180deg); }

/* Mobile spacing polish */
@media (max-width: 560px){
  .section{ padding: 2.6rem 0; }
  .menu{ top: 70px; }
}

/* Media inside cards */
.card-media{width:100%;height:170px;object-fit:cover;border-radius:16px;margin-bottom:14px;border:1px solid rgba(230,232,236,.9);}
@media (max-width:560px){.card-media{height:150px;}}


/* ====== IMS refinements (v6.3) ====== */

/* Logo readability (Investment line) */
.brand img { height: 64px; width: auto; }
@media (max-width: 860px) { .brand img { height: 54px; width: auto; } }

/* Language switch: visually separate from nav */
.lang-switch{
  margin-left: .95rem;
  padding-left: 1.05rem;
  opacity: .94;
}
.lang-flag,
.lang-more-btn{
  width: 32px;
  height: 32px;
  font-size: 17px;
  box-shadow: 0 6px 16px rgba(14,34,51,.05);
}
@media (max-width: 860px){
  .lang-switch{ margin-left:.55rem; padding-left:.75rem; }
}

/* Slightly richer interaction, still institutional */
@media (prefers-reduced-motion: no-preference){
  .card{
    transition: transform .18s ease, box-shadow .18s ease;
  }
  .card:hover{
    transform: translateY(-2px);
    box-shadow: 0 18px 44px rgba(14,34,51,.08);
  }
  .menu a{ position: relative; }
}

/* Capabilities: discreet contact note */
.cta-note{
  border: 1px solid rgba(230,232,236,.95);
  border-radius: 18px;
  padding: 1.15rem 1.15rem;
  background: rgba(255,255,255,.72);
  align-self: start;
}
.cta-note-text{
  margin: 0;
  color: rgba(14,34,51,.74);
  line-height: 1.45;
  font-size: .98rem;
}
.cta-note-text a{
  color: rgba(14,34,51,.88);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.cta-note-text a:hover{ color: rgba(14,34,51,.98); }

/* Make CTA note less dominant on mobile */
@media (max-width: 560px){
  .cta-note{ padding: 1rem 1rem; }
  .cta-note-text{ font-size: .95rem; }
}

/* ====== Layout + responsive fixes (v7.0) ====== */

/* Sticky header wrapper (utility bar + main nav) */
.header-wrap{
  position: sticky;
  top: 0;
  z-index: 60;
  backdrop-filter: blur(10px);
  background: rgba(247,248,250,.78);
  border-bottom: 1px solid rgba(230,232,236,.75);
}
.topbar{
  position: relative;
  top: auto;
  background: transparent;
  border-bottom: 0;
  backdrop-filter: none;
}
/* Header: much more compact */
.nav{ padding: .22rem 0 .32rem; }

/* Logo: visible but not invasive */
.brand img{ width: 170px; height: auto; max-width: 44vw; }
@media (max-width: 560px){ .brand img{ width: 170px; height: auto; max-width: 58vw; } }

/* Utility bar */
.utilitybar{
  font-size: .84rem;
  color: rgba(14,34,51,.72);
}
.utility-inner{
  display:flex;
  justify-content:flex-end;
  padding: .35rem 0;
}
.utility-right{ display:flex; align-items:center; gap:.5rem; }

/* Language switch: flags + earth icon (small, separated, institutional) */
.utilitybar .lang-switch{
  display:flex;
  align-items:center;
  gap: .6rem;
  padding: 0;
  margin: 0;
  border: 0;
}
.utilitybar .lang-flag{
  width:auto;
  height:auto;
  border: 0;
  background: transparent;
  box-shadow: none;
  padding: 0;
  border-radius: 6px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.utilitybar .lang-flag img{
  width: 24px;
  height: 16px;
  display:block;
  border-radius: 4px;
  border: 1px solid rgba(20,47,69,.22);
  box-shadow: 0 6px 16px rgba(14,34,51,.06);
  transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease;
}
.utilitybar .lang-flag:hover img{
  transform: translateY(-1px);
  border-color: rgba(20,47,69,.30);
  box-shadow: 0 10px 22px rgba(14,34,51,.08);
}
.utilitybar .lang-more-btn{
  width: 28px;
  height: 28px;
  border-radius: 10px;
  border: 1px solid rgba(20,47,69,.18);
  background: rgba(255,255,255,.72);
  box-shadow: 0 6px 16px rgba(14,34,51,.06);
}
.utilitybar .lang-more-btn img{
  width: 16px;
  height: 16px;
  opacity: .85;
}
.utilitybar .lang-more-btn:hover{
  background: rgba(255,255,255,.92);
  border-color: rgba(20,47,69,.26);
}

/* Mobile / iPad: burger earlier + safer nav overlay */
@media (max-width: 980px){
  .burger{ display:inline-block; }
  .menu{
    position: absolute;
    top: 74px;
    right: 1.25rem;
    left: 1.25rem;
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: .5rem;
    padding: .8rem;
    background: rgba(255,255,255,.96);
    border: 1px solid var(--line);
    border-radius: 16px;
    box-shadow: var(--shadow);
  }
  .menu.open{ display:flex; }
}

/* Header spacing on very small devices */
@media (max-width: 420px){
  .nav{ padding: .5rem 0 .6rem; }
  .menu{ top: 58px; }
  .utility-inner{ padding: .3rem 0; }
}

/* Hero image cropping better on mobile */
@media (max-width: 560px){
  .hero-inner{ padding: 3.6rem 0; }
  .hero-bg{ background-position: 60% 50%; }
  .hero-actions{ flex-direction: column; align-items: stretch; }
  .hero-actions .btn{ width: 100%; text-align:center; }
}

/* Accordion: clearer active state */
.acc-item .acc-btn strong{ color: rgba(14,34,51,.84); }
.acc-item.open .acc-btn strong{ color: rgba(14,34,51,.98); }
.acc-item.open .acc-btn span{ color: rgba(14,34,51,.70); }

/* Footer: slimmer + links less prominent + aligned */
.footer{ padding: .85rem 0; }
.footer-row{ align-items: flex-end; }
.footer-links{ font-size: .84rem; opacity: .78; }
.footer-company{ font-size: .84rem; opacity: .72; margin-top: .18rem; }

/* Ensure both footer lines look identical (same color/weight) */
.footer-left .footer-company,
.footer-right .footer-company{ font-weight: 500; letter-spacing: .01em; }

/* CTA note: even more discreet */
.cta-note{
  background: rgba(255,255,255,.58);
  border-color: rgba(230,232,236,.82);
  padding: .95rem 1rem;
  border-radius: 16px;
}
.cta-note-text{ font-size: .95rem; }

/* Language switch in header (Option A) */
.topbar .lang-switch{
  display:flex;
  align-items:center;
  gap: .6rem;
  padding-left: .9rem;
  margin-left: .9rem;
  border-left: 1px solid rgba(230,232,236,.95);
}
.topbar .lang-flag{
  width:auto;
  height:auto;
  border: 0;
  background: transparent;
  box-shadow: none;
  padding: 0;
  border-radius: 6px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.topbar .lang-flag img{
  width: 24px;
  height: 16px;
  display:block;
  border-radius: 4px;
  border: 1px solid rgba(20,47,69,.22);
  box-shadow: 0 6px 16px rgba(14,34,51,.06);
  transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease;
}
.topbar .lang-flag:hover img{ transform: translateY(-1px); border-color: rgba(20,47,69,.30); box-shadow: 0 10px 22px rgba(14,34,51,.08); }
.topbar .lang-more-btn{
  width: 28px;
  height: 28px;
  border-radius: 10px;
  border: 1px solid rgba(20,47,69,.18);
  background: rgba(255,255,255,.72);
  box-shadow: 0 6px 16px rgba(14,34,51,.06);
}
.topbar .lang-more-btn img{ width:16px; height:16px; opacity:.85; }

@media (max-width: 980px){
  .topbar .lang-switch{ border-left: 0; padding-left: 0; margin-left: 0; }
  /* keep language switch visible but not cramped */
  .topbar .lang-switch{ gap: .55rem; }
}

/* ====== IMS compatibility + responsive polish (v7.1) ====== */

/* Text helpers used in templates */
.kicker{ /* alias to hero-kicker */
  font-size: .95rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(255,255,255,.75);
  margin-bottom: .8rem;
}
.lead{
  font-size: 1.08rem;
  line-height: 1.65;
  color: rgba(255,255,255,.88);
  max-width: 68ch;
}
.micro{
  font-size: .92rem;
  color: rgba(14,34,51,.62);
}
.hero .micro{ color: rgba(255,255,255,.72); }

/* Extra overlay layer (kept subtle) */
.hero-overlay{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    radial-gradient(900px 420px at 18% 35%, rgba(255,255,255,.08), rgba(255,255,255,0) 60%),
    radial-gradient(700px 360px at 70% 55%, rgba(255,255,255,.05), rgba(255,255,255,0) 62%);
}

/* Cards: padding + soft variant */
.card{ padding: 1.55rem 1.6rem; }
.card.soft{
  background: rgba(255,255,255,.92);
}

/* Equal-height grid helper */
.grid.equal > *{ height: 100%; }
.grid.equal > .card{ display:flex; flex-direction:column; }

/* Section title block */
.section-title{
  display:flex;
  flex-direction:column;
  gap:.25rem;
  margin-bottom: 1.25rem;
}
.h2, .h3{
  font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  letter-spacing: .2px;
  line-height: 1.15;
  margin: 0;
}
.h2{ font-size: clamp(1.5rem, 2.2vw, 2.05rem); font-weight: 700; }
.h3{ font-size: 1.1rem; font-weight: 650; color: rgba(14,34,51,.62); }
.p{ color: rgba(14,34,51,.74); margin: 0 0 1rem; }

/* Buttons: dark by default; hero keeps white */
.btn{
  justify-content:center;
  font-weight: 500;
  color: var(--navy-2);
  border: 1px solid rgba(20,47,69,.22);
  background: rgba(255,255,255,.72);
  backdrop-filter: blur(10px);
}
.btn:hover{ background: rgba(255,255,255,.92); }
.btn-ghost{
  background: transparent;
}
.btn-secondary{
  background: rgba(20,47,69,.06);
}
.hero .btn{
  color: #fff;
  border-color: rgba(255,255,255,.38);
  background: rgba(255,255,255,.08);
}
.hero .btn:hover{ background: rgba(255,255,255,.12); }
.hero .btn-ghost{ background: transparent; }

/* Forms */
.form{ display:flex; flex-direction:column; gap: .9rem; margin-top: .85rem; }
.field label{
  display:block;
  font-size: .92rem;
  color: rgba(14,34,51,.72);
  margin: 0 0 .35rem;
}
.field input,
.field textarea{
  width: 100%;
  padding: .9rem 1rem;
  border-radius: 14px;
  border: 1px solid rgba(20,47,69,.18);
  background: rgba(255,255,255,.92);
  font: inherit;
  color: var(--navy-2);
}
.field textarea{ resize: vertical; min-height: 140px; }
.field input:focus,
.field textarea:focus{
  outline: none;
  border-color: rgba(20,47,69,.35);
  box-shadow: 0 0 0 4px rgba(20,47,69,.08);
}
.req{ color: #C0392B; font-weight: 700; }
.form-legend{
  margin-top: .15rem;
  font-size: .88rem;
  color: rgba(14,34,51,.55);
}

/* Contact blocks */
.contact-list{ display:flex; flex-direction:column; gap: .9rem; margin-top: .85rem; }
.contact-item{ display:grid; grid-template-columns: 115px 1fr; gap: .75rem; }
.contact-label{ font-size: .88rem; color: rgba(14,34,51,.56); }
.contact-value a{ color: rgba(14,34,51,.82); text-decoration: underline; text-decoration-color: rgba(20,47,69,.22); }
.contact-value a:hover{ text-decoration-color: rgba(20,47,69,.45); }
@media (max-width: 560px){
  .contact-item{ grid-template-columns: 1fr; }
}

.map-embed{
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid rgba(230,232,236,.95);
  box-shadow: 0 10px 28px rgba(14,34,51,.06);
}
.map-embed iframe{ width:100%; height: 260px; border:0; display:block; }
@media (max-width: 860px){ .map-embed iframe{ height: 230px; } }

/* Image card */
.image-card{ padding: 0; overflow: hidden; display:flex; flex-direction:column; }
.image-card img{ display:block; width:100%; flex:1; min-height: 420px; height: 100%; object-fit: cover; filter: grayscale(100%); }
.image-caption{
  padding: .95rem 1.05rem;
  font-size: .95rem;
  color: rgba(14,34,51,.72);
  background: rgba(255,255,255,.92);
  border-top: 1px solid rgba(230,232,236,.95);
}
@media (max-width: 560px){ .image-card img{ min-height: 260px; height: 100%; } }

/* Legal pages */
.page{ padding: 3rem 0; }
.prose{
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(230,232,236,.95);
  border-radius: var(--radius);
  padding: 2rem 2rem;
  box-shadow: 0 12px 32px rgba(14,34,51,.06);
}
.prose h2{ margin-top:0; }
.prose p, .prose li{ color: rgba(14,34,51,.75); }
.prose ul{ padding-left: 1.15rem; }
@media (max-width: 560px){
  .page{ padding: 2.2rem 0; }
  .prose{ padding: 1.35rem 1.2rem; }
}

/* Reveal animation */
/* More noticeable motion, still professional */
.reveal{ opacity:0; transform: translateY(18px); transition: opacity .72s ease, transform .72s ease; }
.reveal.is-visible{ opacity:1; transform: none; }
@media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; } }

/* Cookie banner layout matching HTML */
.cookie-text{ color: rgba(14,34,51,.78); font-size: .95rem; }
.cookie-actions{ display:flex; gap:.6rem; flex-wrap: wrap; }

/* iPad / medium screens: tighten spacing and keep brand readable */
@media (max-width: 1100px) and (min-width: 861px){
  .nav{ padding: .75rem 0; }
  .menu{ gap: .95rem; }
  .menu a{ padding: .5rem .6rem; }
}


/* Card kicker */
.card-kicker{
  font-size: .88rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(14,34,51,.55);
  margin-bottom: .65rem;
}


/* Brand sizing: keep header height stable (logo file is square) */
.brand img{ width: 170px; height: auto; max-width: 44vw; }
@media (max-width: 560px){ .brand img{ width: 170px; height: auto; max-width: 58vw; } }
.footer-logo{ height: 44px; width: auto; }


/* Utilitybar flags a touch smaller */
.utilitybar .lang-flag img{ width: 22px; height: 14px; }
.utilitybar .lang-more-btn{ width: 26px; height: 26px; border-radius: 9px; }
.utilitybar .lang-more-btn img{ width: 15px; height: 15px; }


/* Mobile menu positioning: anchor to header-right so it never overlaps the header */
@media (max-width: 980px){
  .header-right{ position: relative; }
  .menu{
    top: calc(100% + 12px);
    left: auto;
    right: 0;
    width: min(360px, calc(100vw - 2.5rem));
  }
}
@media (max-width: 420px){
  .menu{ width: calc(100vw - 2.5rem); }
}


/* === IMS refinements (institutional polish) === */
.brand img{ width: 170px; height: auto; max-width: 44vw; }
@media (max-width: 860px){ .brand img{ width: 170px; height: auto; max-width: 44vw; } }
@media (max-width: 560px){ .brand img{ width: 170px; height: auto; max-width: 58vw; } }

.utilitybar .lang-flag img{
  width: 34px !important;
  height: auto !important;
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,.15);
}
.utilitybar .lang-more-btn{
  width: 30px !important;
  height: 30px !important;
  border-radius: 10px !important;
}
.utilitybar .lang-more-btn img{ width: 16px !important; height: 16px !important; opacity: .9; }

/* Watermark presence */
.hero{ position: relative; overflow: hidden; }
.hero::after{
  content: "IMS";
  position: absolute;
  right: 4%;
  bottom: 6%;
  font-size: 220px;
  font-weight: 700;
  color: rgba(255,255,255,.06);
  letter-spacing: 10px;
  pointer-events: none;
  user-select: none;
}
@media (max-width: 860px){
  .hero::after{ font-size: 150px; }
}
@media (max-width: 560px){
  .hero::after{ font-size: 110px; }
}

/* Stronger chapter titles (Cobertura / Tipologías) */
.chapter-title{
  font-family: "Cormorant Garamond", serif;
  font-size: 26px;
  font-weight: 600;
  letter-spacing: .5px;
  margin: 18px 0 10px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(0,0,0,.10);
}
.chapter-title.small{ font-size: 24px; }

/* Firma: better image caption */
.image-card{ position: relative; overflow: hidden; }
.image-card .image-caption{
  position: absolute;
  left: 14px;
  bottom: 14px;
  background: rgba(0,0,0,.55);
  color: #fff;
  padding: 10px 12px;
  border-radius: 10px;
  font-size: 12px;
  letter-spacing: .12em;
  text-transform: uppercase;
}

/* Contact: softer media */
.card-media.clouds{
  background: #fff;
  padding: 16px;
  border-radius: 16px;
}



/* Hero lead: use full container width (still centered) */
.hero-inner .lead{ max-width: none; width: 100%; }


/* Subtle motion (professional). Respects reduced-motion. */
@media (prefers-reduced-motion: no-preference){
  .hero-bg{ transform: scale(1.04); animation: heroPan 16s ease-in-out infinite alternate; }
  @keyframes heroPan{ from{ transform: scale(1.04) translateY(0); } to{ transform: scale(1.08) translateY(-6px); } }

  .hero::after{ animation: watermarkFloat 10s ease-in-out infinite; }
  @keyframes watermarkFloat{ 0%,100%{ transform: translateY(0); } 50%{ transform: translateY(-10px); } }

  .btn, .menu a, .lang-flag, .lang-more-btn{ transition: transform .16s ease, background .16s ease, box-shadow .16s ease; }
  .lang-flag:hover, .lang-more-btn:hover{ transform: translateY(-1px); box-shadow: 0 10px 22px rgba(14,34,51,.08); }
}



/* Header: flags on the right, subtle and aligned */
/* Header right cluster: separate nav and language (second plane) */
.header-right{ display:flex; align-items:center; gap:18px; }
.menu{ margin-right: 6px; }
.lang-switch{ display:flex; align-items:center; gap:10px; margin-left:34px; opacity:.58; transform: scale(.92); transform-origin: right center; }
.lang-flag{ width:24px; height:16px; display:inline-flex; align-items:center; justify-content:center;
  overflow:hidden; border-radius:4px; border:1px solid rgba(230,232,236,.95); background: rgba(255,255,255,.70);
}
.lang-flag img{ width:24px; height:16px; object-fit:cover; display:block; }
.lang-more{ position:relative; }
.lang-more-btn{ width:28px; height:28px; display:inline-flex; align-items:center; justify-content:center;
  border-radius:10px; border:1px solid rgba(230,232,236,.95); background: rgba(255,255,255,.70);
}
.lang-more-btn img{ width:16px; height:16px; opacity:.85; }
@media (max-width: 900px){
  .lang-switch{ display:none; }
}

/* Accordion: keep text size when open */
.acc-panel{ font-size:16px; }
.acc-panel .p{ font-size:16px; }
.acc-panel .list{ font-size:16px; }

/* Capabilities hero: split lead paragraphs with breathing room */
.lead.lead-split{ margin-top: .75rem; }

/* Contact: make section headers read as headers */
.contact-title{ font-size: 1.25rem; font-weight: 650; margin-top: .6rem; }

/* Intro quote: use full card width and align left */
.intro-quote{
  display:block;
  width:100%;
  max-width:none;
  text-align:left;
  margin: .15rem 0 .65rem;
  font-size: clamp(1.35rem, 1.85vw, 1.75rem);
  line-height: 1.12;
}

/* Stronger, still-professional motion */
.card{ transition: transform .18s ease, box-shadow .18s ease; }
@media (prefers-reduced-motion: no-preference){
  .card:hover{ transform: translateY(-3px); box-shadow: 0 18px 40px rgba(14,34,51,.10); }
  .menu a:hover{ transform: translateY(-1px); }
}

/* Contact: section title styling harmony */
.contact-title{ margin-top: .95rem; }

/* Contact: make "Datos" read as a clear section header */
.contact-title{
  margin-top: .95rem;
  padding-bottom: .55rem;
  border-bottom: 1px solid rgba(230,232,236,.95);
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: .92rem;
  color: rgba(14,34,51,.64);
}


/* iPad & tablets: prevent cramped columns and keep headlines spanning card width */
@media (max-width: 1024px){
  .grid-3{ grid-template-columns: 1fr !important; }
  .menu{ gap: .9rem; }
  .lang-switch{ padding-left: .6rem; }
}

/* iOS Safari: prevent zoom on form fields */
input, textarea, select{
  font-size:16px;
}
