/* Brand composition for ma vie. Shared components are defined in styles.css. */
:root{--header-height:110px;--container-width:1200px;--color-bg:#faf9f6;--color-text:#182c32;--color-muted:#48585c;--color-accent:#226a79;--color-accent-strong:#1a5967;--color-primary:#bd1531;--color-primary-strong:#9d1129;--color-line:#d8d9d5;--shadow-soft:none;--shadow-card:none;--shadow-hover:none;--radius-xl:0;--radius-lg:0;--radius-md:0}
body{background:var(--color-bg);font-size:17px;line-height:1.65}body::before{display:none}
.container{width:min(100% - 96px,var(--container-width))}
h1,h2,h3{letter-spacing:-.035em;text-wrap:balance}h1{font-size:clamp(2.4rem,4.5vw,4.5rem)}
a,button,summary,input{ -webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible{outline:3px solid var(--color-accent);outline-offset:5px}
.eyebrow{font-size:.72rem;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:#5c696d;margin-bottom:1.3rem}
.site-header{background:rgba(250,249,246,.97);border:0;backdrop-filter:blur(12px)}.header-inner{gap:1.5rem}.brand-logo{width:185px;height:auto}.site-nav ul{gap:.35rem;flex-wrap:nowrap}.site-nav a,.nav-parent{font-size:.84rem;font-weight:500;padding:.6rem .65rem;white-space:nowrap;color:var(--color-text);border-radius:0}.site-nav a.is-active{background:none;color:var(--color-text);text-decoration:none}.site-nav a:hover,.site-nav a:focus-visible{background:transparent;box-shadow:none;color:var(--color-primary)}
.site-nav a.nav-cta,.site-nav a.nav-cta.is-active{border-radius:50px;padding:.85rem 1.45rem;background:var(--color-accent);box-shadow:none;color:white;gap:1rem;text-decoration:none}.site-nav a.nav-cta:hover{background:var(--color-accent-strong)}
.btn{font-weight:500;min-height:48px;border-radius:50px;padding:.75rem 1.5rem;box-shadow:none;gap:1.1rem;font-size:.9rem}.btn-primary{background:var(--color-accent);border:1px solid var(--color-accent);color:#fff}.btn-primary:hover,.btn-primary:focus-visible{background:var(--color-accent-strong);box-shadow:none;transform:none}.btn-secondary{background:transparent;border:1px solid var(--color-accent);color:var(--color-text)}.btn-secondary:hover{background:#226a790a;box-shadow:none;transform:none}.btn-linklike,.text-link{display:inline-flex;gap:1.3rem;align-items:center;padding:.4rem 0;border:0;border-bottom:1px solid var(--color-primary);border-radius:0;background:none;color:var(--color-text);font-size:.9rem;font-weight:500;text-decoration:none}.text-link span{color:var(--color-primary)}
.relaunch-hero{position:relative;min-height:580px;isolation:isolate;overflow:hidden;display:flex;align-items:center}.relaunch-hero-copy{position:relative;z-index:3;width:52%;padding:65px 0 100px}.relaunch-hero h1{font-family:'Kalam','Outfit',sans-serif;font-size:clamp(3rem,4.6vw,4.5rem);line-height:1.05;letter-spacing:-.045em;color:var(--color-accent);transform:rotate(-3deg);transform-origin:left center;margin-bottom:2rem}.relaunch-hero h1 span{color:var(--color-primary)}.relaunch-hero .lead{font-size:1.05rem;max-width:44ch;color:var(--color-text);line-height:1.65}.hero-photo{position:absolute;inset:0 0 0 40%;z-index:-2}.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:55% 48%}.hero-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,var(--color-bg),#faf9f6a6 12%,transparent 43%)}.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1.5rem;margin-top:1.8rem}.hero-ribbon{position:absolute;inset:auto 0 -15px;width:100%;height:195px;z-index:-1;color:var(--color-primary);pointer-events:none}
.editorial-offers{max-width:920px;padding:85px 0 35px;scroll-margin-top:130px}.offer-row{display:grid;grid-template-columns:120px 1fr 70px;gap:35px;padding:40px 0;border-bottom:1px solid var(--color-line);text-decoration:none;align-items:start}.offer-number{font-family:'Kalam',sans-serif;font-size:5rem;line-height:1;color:#78949b}.offer-row h2{font-family:'Kalam','Outfit',sans-serif;font-size:1.9rem;line-height:1.15;margin:0 0 14px;letter-spacing:-.04em}.offer-row p{max-width:46ch;font-size:1rem;line-height:1.6}.offer-arrow{display:flex;align-items:center;justify-content:center;border-left:1px solid var(--color-line);height:80px;color:var(--color-primary);font-size:2rem;transition:transform .2s}.offer-row:hover h2{color:var(--color-accent)}.offer-row:hover .offer-arrow{transform:translateX(5px)}
.availability{max-width:920px;padding:25px 0 50px;display:grid;grid-template-columns:150px 1fr;gap:12px 25px}.availability .eyebrow{color:var(--color-primary);margin:4px 0}.availability p{font-size:.85rem}.availability .text-link{grid-column:2;justify-self:start}
.page-subnav-wrap{border-top:1px solid var(--color-line);border-bottom:1px solid var(--color-line);background:var(--color-bg);box-shadow:none}.page-subnav{background:transparent;border:0;border-radius:0;box-shadow:none;gap:1rem}.page-subnav a{border-radius:0;background:none}.page-subnav a.is-active{background:none;color:var(--color-accent);box-shadow:inset 0 -2px var(--color-primary)}
.theme-section,.process-section,.contact-section{padding:80px 0}.theme-wave{display:none}.section-head{max-width:760px;margin-bottom:2.5rem}.section-head h2{font-size:clamp(2rem,3.5vw,3.2rem);line-height:1.15}.theme-section{--theme-accent:var(--color-accent)}
.content-card,.info-card,.wide-card,.process-layout,.contact-card{border-radius:0;box-shadow:none;background:transparent;border:0}.content-card::before,.process-layout::before{display:none}.content-card{padding:1.5rem 0}.info-card{border-top:1px solid var(--color-line);padding:1.8rem 0}.info-card h3{font-size:1.4rem;margin-bottom:1rem}.info-card:hover,.content-card:hover{box-shadow:none;transform:none}.intro-focus-group{background:transparent;border:0;border-top:1px solid var(--color-line);border-radius:0;padding:1rem 0}.intro-focus-groups{gap:2rem}.page-intro{padding:65px 0}.page-intro-grid{gap:4rem;align-items:stretch}.content-card__copy h1{font-size:clamp(2.3rem,3.7vw,3.7rem);line-height:1.1;margin-bottom:1.5rem}.content-card__copy .lead{margin-top:1rem}.intro-photo{height:100%;min-height:440px;width:100%;overflow:hidden;border-radius:50% 50% 0 0 / var(--intro-curve) var(--intro-curve) 0 0}.intro-photo img{width:100%;height:100%;object-fit:cover}.content-card--visual-panel{padding:0;align-self:stretch}.page-intro-grid .content-card--hero{padding:0}.wide-card{border-top:1px solid var(--color-line);padding:2rem 0}.cards-grid{column-gap:3rem;row-gap:1rem}.home-links-grid{gap:1.5rem 3rem}.process-layout{padding:0;gap:3rem}.process-steps li{background:none;border-radius:0;border-top:1px solid var(--color-line);padding:1.3rem 0}.contact-section{background:#f0f3f0}.contact-layout{gap:4rem}.contact-card{padding:2rem;border:1px solid var(--color-line)}.contact-card__logo-wrap{background:none;border:0;border-radius:0;padding:0 0 1rem}.contact-tags li{border-radius:0;background:none;border:0;padding-left:0;margin-right:1rem}
.mission-section{position:relative;background:var(--color-accent);color:#fff;padding:120px 0 95px;border-radius:0 40% 30% 0 / 0 15% 14% 0;margin-top:35px;isolation:isolate}.mission-section::before{content:'';position:absolute;top:-30px;right:-10%;width:55%;height:150px;border:42px solid var(--color-primary);border-bottom:0;border-radius:70% 70% 0 0;transform:rotate(-15deg);z-index:-1}.mission-section .section-head{max-width:700px}.mission-section .section-head h2{font-family:'Kalam','Outfit',sans-serif;font-size:clamp(2.5rem,4vw,4rem);line-height:1.1;max-width:20ch}.mission-section .eyebrow,.mission-section .section-head p:last-child,.mission-section .content-card__copy p,.mission-section .content-card{color:white}.mission-section .page-intro-grid{display:block}.mission-section .content-card{max-width:1000px}.mission-section .content-card__copy{display:grid;grid-template-columns:1fr 1fr;gap:1rem 4rem}.mission-section .content-card__copy>h3{grid-column:1 / -1;font-size:1.4rem}.mission-section .intro-focus-groups{margin:0}.mission-section .intro-focus-group{border-color:#ffffff4d}.mission-section .bullet-list,.mission-section .mini-list{color:#fff}.mission-section .intro-focus-group h3{font-size:1.1rem;color:#fff}.mission-section .bullet-list li::before,.mission-section .mini-list li::before{background:#fff}
.story-section{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:90px;padding:85px 0 45px}.story-section>img{width:100%;height:365px;object-fit:cover}.story-section h2{font-family:'Kalam','Outfit',sans-serif;line-height:1.1;color:var(--color-primary);font-size:clamp(2.4rem,3.7vw,3.5rem);transform:rotate(-4deg);margin:1.5rem 0 2rem}.story-section p:not(.eyebrow){max-width:38ch}.story-section .text-link{margin-top:1.3rem}.values-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:1.5rem;padding:25px 0 75px}.values-strip span{font-size:.84rem;font-weight:500;border-right:1px solid var(--color-line);padding-left:1rem;line-height:1.5}.values-strip span::before{content:'☆';position:absolute;left:0;top:0;color:var(--color-primary);font-family:Arial,'Helvetica Neue',sans-serif;font-size:1.1rem;line-height:1.15rem}.values-strip span:last-child{border:0}.seminar-feature{background:#f0f2ee;position:relative;overflow:hidden}.seminar-feature>.container{display:grid;grid-template-columns:1fr 1.15fr;align-items:center;gap:5rem}.seminar-feature h2{font-family:'Kalam','Outfit',sans-serif;font-size:2.6rem;margin-bottom:1.5rem}.seminar-feature p{max-width:38ch}.seminar-feature .btn{margin-top:1.5rem}.seminar-feature img{height:370px;width:100%;object-fit:cover}
.site-footer{background:var(--color-bg);color:var(--color-text);border-top:1px solid var(--color-line)}.footer-grid{grid-template-columns:1.5fr 1fr 1fr;padding:48px 0 36px;gap:3rem}.footer-brand-block{order:0;justify-content:flex-start}.footer-logo{width:200px;height:auto;opacity:1}.footer-col h3{color:var(--color-accent);font-size:.85rem}.footer-col li{color:var(--color-muted);font-size:.84rem}.footer-col a:hover{color:var(--color-primary)}.footer-bottom{border-top:1px solid var(--color-line);color:var(--color-muted)}.footer-bottom a:hover{color:var(--color-primary)}
@media(min-width:921px){.site-nav{visibility:visible!important}}
@media(max-width:1150px){.container{width:calc(100% - 64px)}.brand-logo{width:175px}.site-nav a,.nav-parent{font-size:.77rem;padding:.6rem .4rem}.site-nav a.nav-cta{padding:.75rem 1rem}.header-inner{gap:1rem}.relaunch-hero h1{font-size:3.7rem}.relaunch-hero-copy{width:55%}}
@media(max-width:920px){:root{--header-height:90px}.container{width:calc(100% - 48px)}.brand-logo{width:180px}.nav-toggle{display:flex;gap:.8rem;border-color:var(--color-line)}.site-nav{visibility:hidden;top:var(--header-height);left:0;right:0;max-height:calc(100dvh - var(--header-height));overflow-y:auto;padding:1rem 24px 2rem;border-radius:0;border-width:0 0 1px;box-shadow:none;background:var(--color-bg)}.site-nav.is-open{visibility:visible}.site-nav ul{display:grid;gap:.2rem}.site-nav a,.nav-parent{padding:.8rem .5rem;font-size:1rem;justify-content:start}.site-nav a.nav-cta{margin-top:.8rem;width:auto}.nav-dropdown>ul{position:static;box-shadow:none;border:0;border-left:1px solid var(--color-line);margin-left:10px;padding:.2rem 1rem}.nav-dropdown>ul a{font-size:.9rem}.relaunch-hero-copy{width:58%;padding:55px 0 80px}.relaunch-hero h1{font-size:3.2rem}.relaunch-hero .lead{font-size:1rem}.hero-photo{left:33%}.hero-photo::after{background:linear-gradient(90deg,var(--color-bg),#faf9f6bb 30%,transparent 80%)}.hero-actions{gap:1rem}.offer-row{grid-template-columns:95px 1fr 55px;gap:20px}.page-intro-grid{grid-template-columns:1fr;gap:2rem}.intro-photo{min-height:0;height:350px}.mission-section .content-card__copy{grid-template-columns:1fr}.story-section{gap:40px}.story-section>img{height:320px}.values-strip{grid-template-columns:repeat(3,1fr);gap:25px}.values-strip span{padding:0;border:0}.seminar-feature>.container{gap:2rem}.seminar-feature img{height:360px}.footer-grid{grid-template-columns:1fr 1fr;gap:2.5rem}.footer-brand-block{grid-column:1/-1}.contact-layout{gap:2rem}}
@media(max-width:600px){:root{--header-height:82px}.container{width:calc(100% - 40px)}body{font-size:16px}.brand-logo{width:165px}.relaunch-hero{display:block;min-height:0;padding-bottom:0}.relaunch-hero-copy{width:100%;padding:35px 0 36px}.relaunch-hero h1{font-size:clamp(2.7rem,9vw,3.6rem);margin-bottom:1.6rem}.relaunch-hero .eyebrow{margin-bottom:1.8rem}.relaunch-hero .lead{max-width:100%;font-size:1rem}.hero-photo{position:relative;inset:auto;height:320px;z-index:0;margin-top:0;order:2}.relaunch-hero{display:flex;flex-direction:column;align-items:stretch}.relaunch-hero>.container{order:1}.hero-photo::after{background:linear-gradient(0deg,transparent 85%,var(--color-bg))}.hero-photo img{object-position:55% 47%}.hero-ribbon{z-index:1;height:95px;bottom:-20px}.hero-actions .btn{width:auto}.editorial-offers{padding:55px 0 15px}.offer-row{grid-template-columns:57px minmax(0,1fr) 28px;gap:14px;padding:30px 0}.offer-number{font-size:3.2rem}.offer-row h2{font-size:1.55rem}.offer-row p{font-size:.9rem}.offer-arrow{height:60px;font-size:1.5rem}.availability{grid-template-columns:1fr;padding:20px 0 35px}.availability .text-link{grid-column:1}.theme-section,.process-section,.contact-section{padding:50px 0}.page-subnav{gap:.3rem}.page-subnav-shell{overflow-x:auto}.page-subnav a{white-space:nowrap;font-size:.8rem;padding:.6rem .55rem}.page-subnav{width:max-content;max-width:none}.page-subnav-wrap .container{width:calc(100% - 24px)}.mission-section{border-radius:0 12% 10% 0 / 0 4% 5% 0;padding:75px 0 55px;margin-top:0}.mission-section::before{top:-15px;right:-20%;width:85%;height:100px;border-width:25px}.mission-section .section-head h2{font-size:2.6rem}.mission-section .content-card__copy{display:block}.mission-section .content-card__copy>h3{margin-bottom:1.5rem}.mission-section .intro-focus-groups{margin-top:1.7rem;grid-template-columns:1fr;gap:.5rem}.story-section{grid-template-columns:1fr;gap:35px;padding:50px 0 35px}.story-section>img{height:270px}.story-section h2{font-size:2.7rem}.values-strip{grid-template-columns:1fr 1fr;padding:15px 0 45px;gap:24px}.values-strip span{font-size:.8rem}.values-strip span::before{margin-right:8px}.seminar-feature>.container{grid-template-columns:1fr;gap:25px;padding-top:40px}.seminar-feature img{height:250px}.seminar-feature h2{font-size:2.3rem}.page-intro{padding:35px 0}.content-card__copy h1{font-size:2.3rem}.intro-photo{height:260px}.content-card__copy .hero-actions .btn{width:100%}.contact-card{padding:1.5rem}.contact-card__logo-wrap{padding:0 0 1rem}.section-head h2{font-size:2rem}.footer-grid{grid-template-columns:1fr 1fr;padding:45px 0 30px;gap:30px 15px}.footer-brand-block{grid-column:1/-1}.footer-logo{width:200px}.footer-col a{overflow-wrap:anywhere}.footer-bottom{align-items:flex-start;gap:.75rem;padding:20px 0}.footer-col li{font-size:.8rem}}
/* Keep the skip link fully outside the viewport until focused. */
.skip-link{top:-100px}.skip-link:focus{top:12px}
@media(max-width:920px){.site-nav ul{justify-content:stretch}.site-nav>ul>li{width:100%}.site-nav a{width:100%;justify-content:flex-start}.site-nav a.nav-cta{justify-content:center}.nav-dropdown>ul{width:auto}}
@media(max-width:380px){.brand-logo{width:145px}.header-inner{gap:.5rem}.relaunch-hero h1{font-size:2.4rem}.contact-card{padding:1rem}.contact-card a[href^="mailto"]{overflow-wrap:anywhere}}

/* Shared placeholders also cover former CSS illustrations and map sketches. */
.image-placeholder{position:relative;width:100%;overflow:hidden;background:#e9edeb;min-height:240px}
.image-placeholder--compact{min-height:170px;margin-top:.75rem}
.image-placeholder img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}
@media(max-width:640px){.image-placeholder--card{min-height:190px}}

/* Public service entries, current information and contact shortcut. */
.nav-dropdown > ul {
  min-width: 300px;
  max-width: min(360px, calc(100vw - 40px));
  max-height: calc(100dvh - var(--header-height) - 32px);
  overflow-y: auto;
  overscroll-behavior: contain;
}
.nav-parent.is-current { text-decoration: none; }
.nav-divider { margin-top: .6rem; padding-top: .6rem; border-top: 1px solid var(--color-line); }
.notice-placeholder {
  max-width: var(--container-width);
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 22px;
  align-items: center;
  margin-top: 32px;
  padding: 28px 32px;
  background: var(--color-accent);
  border: 0;
  border-left: 6px solid var(--color-primary);
  color: white;
}
.notice-placeholder .eyebrow { margin: 0 0 8px; color: white; font-weight: 600; }
.notice-copy > p:last-child { color: white; font-size: 1rem; }
.notice-symbol { width: 38px; height: 38px; border: 1px solid #ffffff80; border-radius: 50%; display: grid; place-items: center; font-size: 1.25rem; font-weight: 500; }
.public-jobs {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 3rem;
  padding-block: 65px;
  border-bottom: 1px solid var(--color-line);
}
.public-jobs h2 { font-family: 'Kalam', 'Outfit', sans-serif; font-size: clamp(2rem, 3vw, 3rem); margin-bottom: 1rem; }
.public-jobs p { max-width: 55ch; }
.knowledge-link { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem 2rem; padding-block: 1.5rem; border-block: 1px solid var(--color-line); }
/* Shared floating shortcuts replace the telephone-only button. */
.quick-menu { position: fixed; right: max(24px, env(safe-area-inset-right)); bottom: calc(24px + env(safe-area-inset-bottom)); z-index: 65; }
.quick-menu > summary { display: flex; align-items: center; justify-content: space-between; gap: 22px; min-height: 52px; padding: 14px 20px; border: 1px solid var(--color-accent); border-radius: 50px; background: var(--color-accent); color: white; font-size: .9rem; font-weight: 500; list-style: none; cursor: pointer; box-shadow: 0 4px 18px #182c3214; }
.quick-menu > summary::-webkit-details-marker { display: none; }
.quick-menu > summary:hover { background: var(--color-accent-strong); }
.quick-menu-symbol { flex: 0 0 20px; transition: transform 180ms ease; }
.quick-menu[open] .quick-menu-symbol { transform: rotate(45deg); }
.quick-menu-links { position: absolute; right: 0; bottom: calc(100% + 12px); width: min(290px, calc(100vw - 40px)); padding: 8px 18px; border: 1px solid var(--color-line); background: var(--color-bg); box-shadow: 0 8px 28px #182c321a; }
.quick-menu-links a { display: flex; align-items: center; gap: 14px; min-height: 60px; padding: 14px 2px; text-decoration: none; font-size: .95rem; color: var(--color-text); }
.quick-menu-links a + a { border-top: 1px solid var(--color-line); }
.quick-menu-links a > svg { flex: 0 0 22px; color: var(--color-accent); }
.quick-menu-links a:hover, .quick-menu-links a[aria-current=page] { color: var(--color-primary); }
.quick-menu-links a:focus-visible { outline-offset: 0; }
.quick-menu-arrow { margin-left: auto; color: var(--color-primary); }
body.menu-open .quick-menu { visibility: hidden; pointer-events: none; }
body:has(> .quick-menu) .site-footer { padding-bottom: calc(88px + env(safe-area-inset-bottom)); }
@media (max-width: 600px) { .quick-menu { right: max(16px, env(safe-area-inset-right)); bottom: calc(16px + env(safe-area-inset-bottom)); } }
@media (max-width: 920px) {
  .nav-dropdown > ul { max-width: none; min-width: 0; max-height: none; overflow: visible; }
  .public-jobs { grid-template-columns: 1fr; gap: 1.5rem; justify-items: start; }
}
@media (max-width: 600px) {
  .notice-placeholder { grid-template-columns: 30px minmax(0,1fr); gap: 16px; padding: 22px 18px; }
  .notice-symbol { width: 30px; height: 30px; }
  .public-jobs { padding-block: 45px; }
}
.offer-row h2 { hyphens: auto; overflow-wrap: break-word; }

/* First design refinement: common navigation baseline and height-independent image arch. */
:root { --intro-curve: 110px; }
.nav-dropdown { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; }
.site-nav > ul > li > a:not(.nav-cta), .site-nav .nav-parent {
  position: relative;
  height: 48px;
  display: inline-flex;
  align-items: center;
  line-height: 1.3;
  text-decoration: none;
}
.site-nav > ul > li > a:not(.nav-cta)::after, .site-nav .nav-parent::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--color-primary);
  opacity: 0;
}
.site-nav > ul > li > a.is-active::after, .site-nav .nav-parent.is-current::after { opacity: 1; }
.nav-chevron { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 16px; width: 16px; height: 16px; margin-left: .4rem; }
.nav-chevron svg, .nav-submenu-toggle svg { display: block; width: 16px; height: 16px; }
.nav-submenu-toggle > span { display: flex; align-items: center; justify-content: center; }
.nav-submenu-toggle { display: none; }
.nav-dropdown > ul {
  position: absolute;
  z-index: 2;
  top: 100%;
  left: 0;
  display: none;
  grid-column: 1 / -1;
  padding: 1rem;
  background: var(--color-bg);
  border-top: 2px solid var(--color-primary);
  box-shadow: 0 12px 24px #182c3214;
}
.nav-dropdown.is-open > ul { display: grid; }
.nav-dropdown > ul a { display: block; white-space: normal; }
@media (max-width: 920px) {
  .nav-submenu-toggle {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--color-accent);
    font: inherit;
    cursor: pointer;
  }
  .nav-submenu-toggle[aria-expanded=true] span { transform: rotate(180deg); }
  .nav-parent .nav-chevron { display: none; }
  .nav-dropdown > ul {
    position: static;
    border-top: 0;
    border-left: 1px solid var(--color-line);
    margin-left: .5rem;
    padding: .25rem 1rem;
    box-shadow: none;
  }
  .site-nav > ul > li > a:not(.nav-cta)::after, .site-nav .nav-parent::after { bottom: 0; }
}

/* Wider navigation uses a touch-friendly menu before the header becomes crowded. */

@media (min-width: 1281px) {
  .site-nav a, .nav-parent { font-size: .8rem; padding-inline: .5rem; }
}
@media (min-width: 921px) and (max-width: 1280px) {
  .nav-toggle { display: flex; gap: .8rem; border-color: var(--color-line); }
  .site-nav { position: fixed; visibility: hidden !important; opacity: 0; pointer-events: none; transform: translateY(-6px); top: var(--header-height); left: 0; right: 0; max-height: calc(100dvh - var(--header-height)); overflow-y: auto; padding: 1rem 32px 2rem; background: var(--color-bg); border-bottom: 1px solid var(--color-line); }
  .site-nav.is-open { visibility: visible !important; opacity: 1; pointer-events: auto; transform: none; }
  .site-nav ul { display: grid; gap: .2rem; align-items: stretch; justify-content: stretch; }
  .site-nav > ul > li { width: 100%; }
  .site-nav a, .nav-parent { width: 100%; padding: .8rem .5rem; font-size: 1rem; justify-content: flex-start; }
  .site-nav a.nav-cta { width: auto; margin-top: .8rem; justify-content: center; }
  .nav-submenu-toggle { display: grid; place-items: center; width: 48px; height: 48px; padding: 0; border: 0; background: transparent; color: var(--color-accent); cursor: pointer; }
  .nav-submenu-toggle[aria-expanded=true] span { transform: rotate(180deg); }
  .nav-parent .nav-chevron { display: none; }
  .nav-dropdown > ul { position: static; width: auto; max-width: none; min-width: 0; max-height: none; overflow: visible; border: 0; border-left: 1px solid var(--color-line); margin-left: .5rem; padding: .25rem 1rem; box-shadow: none; }
  .nav-dropdown > ul a { font-size: .9rem; }
  .site-nav > ul > li > a:not(.nav-cta)::after, .site-nav .nav-parent::after { bottom: 0; }
}
@media (max-width: 1280px) { body.menu-open { overflow: hidden; } }


.footer-brand-block > a { display: inline-block; }
.footer-contact { margin-top: 20px; font-size: .85rem; font-style: normal; line-height: 1.7; color: var(--color-muted); }
.footer-contact p + p { margin-top: 12px; }
.footer-contact a { text-decoration: none; }
.footer-contact a:hover { color: var(--color-primary); text-decoration: underline; }

/* Align link groups with the contact information beneath the logo. */
@media (min-width: 921px) {
  .footer-grid { row-gap: 20px; }
  .footer-brand-block { display: contents; }
  .footer-brand-block > a { grid-column: 1; grid-row: 1; justify-self: start; }
  .footer-contact { grid-column: 1; grid-row: 2; margin-top: 0; }
  .footer-col { grid-row: 2; }
  .footer-col h3 { line-height: 1.7; }
}

/* Shared compact login dialog for Mein ma vie. */
body.mavie-login-open { overflow: hidden; }
.mavie-login { width: min(440px, calc(100% - 32px)); max-height: calc(100dvh - 32px); overflow-y: auto; padding: 32px; border: 1px solid var(--color-line); border-radius: 16px; background: var(--color-bg); color: var(--color-text); }
.mavie-login::backdrop { background: #182c3280; backdrop-filter: blur(4px); }
.mavie-login-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 14px; }
.mavie-login-heading h2 { font-family: 'Kalam','Outfit',sans-serif; color: var(--color-accent); font-size: 2.3rem; line-height: 1.2; }
.mavie-login-heading h2:focus { outline: none; }
.mavie-login-close { display: grid; place-items: center; flex: 0 0 40px; width: 40px; height: 40px; padding: 0; border: 1px solid var(--color-line); border-radius: 50%; background: transparent; color: var(--color-accent); font-size: 1.8rem; line-height: 1; cursor: pointer; }
.mavie-login-close:hover { border-color: var(--color-accent); }
.mavie-login > p { font-size: .95rem; color: var(--color-muted); }
.mavie-login-form { display: grid; gap: 18px; margin-top: 24px; }
.mavie-login-form label { display: grid; gap: 8px; font-size: .9rem; }
.mavie-login-form input { width: 100%; min-width: 0; padding: 12px 14px; border: 1px solid var(--color-line); border-radius: 6px; background: #fff; color: var(--color-text); font: inherit; }
.mavie-login-form input:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }
.mavie-login-form .btn { width: 100%; }
.mavie-login-status { font-size: .85rem; color: var(--color-primary); }
.mavie-login-preview { margin-top: 24px; padding-top: 18px; border-top: 1px solid var(--color-line); font-size: .85rem; }
.mavie-login-preview p { margin-bottom: 8px; color: var(--color-muted); }
@media(max-width:600px) { .mavie-login { padding: 24px; } }

/* Align decorative stars with the first line, including wrapped labels. */
.values-strip > span { position: relative; padding-left: 1.65rem; }

/* Consistent action layout on phones: full-width buttons, secondary links below. */
@media (max-width: 600px) {
  .btn.btn, .hero-actions .btn.btn { width: 100%; max-width: none; justify-content: center; text-align: center; }
  .hero-actions, .process-cta { display: flex; flex-direction: column; align-items: stretch; width: 100%; gap: 14px; }
  .hero-actions > .btn { margin-top: 0; }
  .hero-actions > .text-link { align-self: center; justify-content: center; text-align: center; }
  .process-cta > .text-link { align-self: center; text-align: center; }
  .page-home .home-careers .text-link, .home-availability .text-link, .story-section .text-link { justify-self: center; justify-content: center; text-align: center; }
  .jobs-page .job-disclosure { grid-column: 1 / -1; width: 100%; justify-self: stretch; }
  .portal-content .portal-document-actions { display: flex; flex-direction: column; align-items: center; gap: 14px; width: 100%; }
  .portal-document-actions > button { text-align: center; }
  .mavie-login-preview { text-align: center; }
}

.address-locality { white-space: nowrap; }
@media (max-width: 600px) { .page-subnav-shell { scroll-padding-inline: 12px; } .page-subnav { padding-inline: 8px; scroll-padding-inline: 8px; } .page-subnav a { flex-shrink: 0; } }

.database-text, [data-notice-text] { white-space: pre-line; overflow-wrap: anywhere; }
.knowledge-image { width:100%; max-height:300px; object-fit:contain; margin-bottom:20px; }
.knowledge-resource .knowledge-video-player { width:100%; margin-block:20px; }
[hidden] { display:none !important; }

/* Draw close icons independently of font metrics and browser button padding. */
button.portal-dialog-close, button.job-modal-close, button.mavie-login-close {
  position:relative;
  padding:0;
  line-height:1;
  font-size:0;
}
button.portal-dialog-close::before, button.portal-dialog-close::after,
button.job-modal-close::before, button.job-modal-close::after,
button.mavie-login-close::before, button.mavie-login-close::after {
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  width:16px;
  height:1.7px;
  border-radius:1px;
  background:currentColor;
  transform:translate(-50%,-50%) rotate(45deg);
  pointer-events:none;
}
button.portal-dialog-close::after, button.job-modal-close::after, button.mavie-login-close::after {
  transform:translate(-50%,-50%) rotate(-45deg);
}
