/* Shared interaction and visual rhythm across the Happy family. */
:root{--header-height:84px;--context-height:0px;--ui-radius:8px;--ui-border:#11172b20;--ui-focus:#ff9b67}
html.hotsite-document{--context-height:52px}
html{scroll-padding-top:calc(var(--header-height) + var(--context-height) + 18px)}
body main [id]{scroll-margin-top:0}
body{overflow-wrap:break-word}
.wrap{max-width:1360px}
h1,h2,h3{text-wrap:balance}
.button,.line-button{border-radius:var(--ui-radius);min-height:56px;font-size:.875rem;line-height:1.5}
.button:hover,.line-button:hover{transform:translateY(-2px)}
a,button,summary,select{touch-action:manipulation}
summary:focus-visible{outline:3px solid var(--ui-focus);outline-offset:5px}
.line-page{--ui-focus:var(--line-support)}
.site-header,.site-header.scrolled,.line-page .site-header,.line-page .site-header.scrolled{height:var(--header-height);transition:background .2s,box-shadow .2s,border-color .2s}
.site-header.scrolled{box-shadow:0 6px 22px #050b1817}
.home-logo,.home-logo img{width:168px;height:64px}
.home-logo{margin-left:-14px}
.desktop-nav{gap:30px;font-size:.875rem}
.desktop-nav>a{display:inline-flex;align-items:center;min-height:44px}
.desktop-nav .nav-contact,.line-page .desktop-nav .nav-contact{border-radius:var(--ui-radius);min-height:46px;padding:12px 19px;gap:18px}
.site-header:not(.line-header) .nav-contact{background:var(--paper);color:var(--navy);border-color:var(--paper)}
.site-header:not(.line-header) .nav-contact:hover{background:#ffddca;color:var(--navy)}
.line-page .desktop-nav{gap:26px}
.line-page .home-logo,.line-page .home-logo img{width:234px}
.line-company .home-logo,.line-company .home-logo img{width:266px}
.family-disclosure{position:relative}
.family-disclosure>summary{display:flex;align-items:center;gap:11px;cursor:pointer;list-style:none;min-height:44px;line-height:1.5;font-weight:400;font-size:.875rem}
.family-disclosure>summary::-webkit-details-marker{display:none}
.nav-chevron{display:block;width:7px;height:7px;border:solid currentColor;border-width:0 1.5px 1.5px 0;transform:rotate(45deg) translateY(-2px);transition:transform .2s}
.family-disclosure[open] .nav-chevron{transform:rotate(225deg) translate(-1px,-1px)}
.family-dropdown{position:absolute;top:calc(100% + 19px);right:-25px;width:425px;max-width:calc(100vw - 48px);max-height:calc(100dvh - var(--header-height) - 36px);overflow:auto;overscroll-behavior:contain;padding:23px;background:var(--paper);border:1px solid #11172b18;border-radius:14px;color:var(--navy);box-shadow:0 22px 64px #08132633;line-height:1.4}
.nav-eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.085em;color:#667080;line-height:1.65;margin:0 0 14px}
.family-dropdown-links{display:grid;gap:5px}
.family-option{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid transparent;padding:10px 12px;border-radius:8px;transition:background .16s,border-color .16s;color:var(--navy)}
.family-option:hover{background:#eceef2;border-color:#11172b10}
.family-option[aria-current=page]{background:var(--front-tint);border-color:#11172b0c}
.family-option-copy{display:block;min-width:0}
.family-option img{width:220px;height:44px;object-fit:contain;object-position:left center;margin-left:-9px}
.family-option-context{display:block;font-size:.875rem;line-height:1.6;color:#566172;margin-left:3px}
.family-option-end{display:flex;align-items:center;gap:12px;margin-left:auto}
.family-option-end>span[aria-hidden]{font-size:1.4rem;font-weight:400;line-height:1}
.nav-current{font-size:.75rem;color:#505c6c;line-height:1.4;max-width:53px}
.family-overview{display:flex;align-items:center;justify-content:space-between;gap:25px;min-height:48px;font-size:.875rem;border-top:1px solid var(--ui-border);margin-top:15px;padding:18px 8px 0;font-weight:700}
.family-overview:hover{color:#8543b8}
.mobile-nav,.line-page .mobile-nav{top:var(--header-height);padding:0;background:var(--paper);color:var(--navy);overflow-y:auto;overscroll-behavior:contain;max-height:calc(100dvh - var(--header-height));font-weight:400;letter-spacing:normal}
.mobile-nav-inner{max-width:580px;margin:auto;padding:22px var(--gutter) 35px}
.mobile-nav a{border:0;padding:0}
.mobile-nav .mobile-family-home{min-height:50px;display:flex;align-items:center;justify-content:space-between;font-size:1.125rem;font-weight:700;letter-spacing:-.025em;border-bottom:1px solid var(--ui-border);margin-bottom:24px;padding-bottom:12px}
.mobile-front-links{display:grid;gap:3px}
.mobile-nav .family-option{display:flex;padding:10px 13px;border:1px solid transparent;border-radius:8px}
.mobile-nav .family-option img{width:222px;height:44px}
.mobile-nav .family-option-context{font-size:.875rem}
.mobile-nav .family-option-end{font-size:1.25rem}
.mobile-nav .family-option[aria-current=page]{border-color:#11172b16}
.mobile-page-label{padding-top:24px;border-top:1px solid var(--ui-border);margin-top:20px;margin-bottom:12px}
.mobile-page-links{display:flex;flex-wrap:wrap;gap:7px 12px}
.mobile-nav .mobile-page-links a{display:inline-flex;align-items:center;min-height:44px;padding:10px 15px;border:1px solid #11172b30;border-radius:6px;font-size:.875rem;line-height:1.45;font-weight:400;background:white}
.mobile-nav .mobile-page-links a:last-child{background:var(--navy);border-color:var(--navy);color:#fff}
.menu-toggle{min-height:44px}
.section-nav{position:sticky;top:var(--header-height);z-index:40;background:var(--paper);border-top:1px solid #11172b15;border-bottom:1px solid #11172b20}
.section-nav-inner{display:flex;align-items:center;gap:32px;min-height:var(--context-height)}
.section-nav-label{color:var(--line-support);font-size:.875rem;font-weight:700;line-height:1.4;white-space:nowrap}
.section-nav-links{display:flex;align-items:stretch;gap:26px;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;scrollbar-color:#11172b33 transparent;white-space:nowrap;margin-left:auto;min-width:0}
.section-nav-links a{position:relative;display:flex;align-items:center;min-height:50px;padding:12px 2px;font-size:.875rem;line-height:1.5;color:#687281;border-bottom:2px solid transparent;transition:color .2s,border-color .2s}
.section-nav-links a:hover{color:var(--line-support)}
.section-nav-links a[aria-current=location]{border-bottom-color:var(--line-support);color:var(--line-support);font-weight:700}
.hero{min-height:max(740px,96svh)}
.hero-content{padding-top:146px;padding-bottom:127px}
.hero h1{font-size:clamp(3.625rem,6.6vw,6.75rem);line-height:1.035;letter-spacing:-.05em}
.hero-description{font-size:1.125rem;line-height:1.75;max-width:455px}
.hero-actions{gap:26px}
.hero-eyebrow{letter-spacing:.1em}
.hero-note{font-size:.75rem;letter-spacing:.1em}
.hero-bottom{bottom:28px}
.fronts{padding-top:clamp(68px,6vw,96px);padding-bottom:70px}
.fronts-heading{padding-bottom:33px;gap:36px}
.fronts-heading h2{font-size:clamp(2.5rem,4.1vw,3.75rem);letter-spacing:-.04em}
.fronts-heading>p{font-size:1rem;line-height:1.8}
.front-tabs{border-radius:12px 12px 0 0}
.front-tab{padding-block:18px 19px;gap:3px}
.front-tab>span{font-size:.875rem;line-height:1.5}
.front-tab .tab-mobile-name{display:none}
.front-tab[aria-selected=true]{background:#fff}
.front-tab[aria-selected=true]::after{height:4px}
.front-panel{min-height:690px}
.has-js .front-panel{border-radius:0 0 12px 12px}
.panel-content{padding-top:47px;padding-bottom:50px}
.panel-content h3{letter-spacing:-.04em;line-height:1.09}
.panel-description{font-size:1rem;line-height:1.8}
.panel-eyebrow{font-size:.75rem;letter-spacing:.08em;text-transform:none}
.panel-audience{margin-top:24px;margin-bottom:26px}
.panel-audience p{font-size:.875rem;line-height:1.8}
.panel-actions{gap:11px}
.panel-direct-contact{min-height:40px;display:inline-flex;align-items:center;font-size:.875rem}
.button-front{font-size:.875rem}
.fronts-footnote{padding-top:24px}
.fronts-footnote p{font-size:.875rem;line-height:1.8}
.essence{border-top:1px solid #11172b20;padding-block:90px}
.essence h2{font-size:clamp(2.75rem,4.75vw,4.5rem);letter-spacing:-.04em}
.essence-copy .lead{font-size:1.5rem}
.approach-content h2{letter-spacing:-.035em}
.journey h3{font-size:1.5rem;letter-spacing:-.025em}
.journey p{font-size:1rem;line-height:1.75}
.possibility-symbol{display:none}
.possibility-list article{grid-template-columns:.16fr .95fr 1fr}
.scope-note{font-size:.875rem;line-height:1.8}
.conversation-content{padding-block:90px}
.contact-options{width:450px}
.contact-options select,.line-contact-form select{min-height:58px;font-size:1rem;border-radius:var(--ui-radius)}
.contact-options label,.line-contact-form label{font-size:.875rem;line-height:1.6}
.button-contact{border-radius:var(--ui-radius)}
.contact-hint,.line-contact-form .contact-hint{font-size:.875rem;line-height:1.7;color:#cbd4df}
.contact-alternative,.line-contact-form .contact-alternative{font-size:.875rem;line-height:1.8;min-height:44px}
.line-page .line-hero{min-height:max(700px,86svh)}
.line-hero-content{padding-top:129px;padding-bottom:67px}
.line-breadcrumb{margin-bottom:28px;font-size:.875rem;min-height:32px}
.line-page .line-hero h1{font-size:clamp(3.125rem,5vw,4.875rem);line-height:1.07;letter-spacing:-.045em;max-width:660px}
.line-hero-description{font-size:1.0625rem;line-height:1.8;max-width:490px;margin-top:24px}
.line-hero-actions{margin-top:28px;gap:25px}
.line-purpose>.wrap{padding-block:25px}
.line-purpose p{font-size:1.2rem}
.line-purpose a{gap:15px}
.line-purpose i{width:22px}
.line-section{padding-block:88px}
.line-publics,.education-audiences,.city-participation,.company-context{padding-top:0}
.line-section-heading h2,.line-intro h2,.company-context h2,.participation-copy h2,.faq-section h2{font-size:clamp(2.25rem,3.55vw,3.375rem);letter-spacing:-.035em;line-height:1.14}
.line-intro-grid{gap:clamp(42px,6vw,98px)}
.line-intro-copy{padding-top:38px}
.line-themes{margin-top:43px;gap:36px}
.line-themes h3,.context-rows h3{letter-spacing:-.02em}
.line-journey{padding-block:73px}
.line-journey ol{margin-top:43px}
.line-step-number{margin-bottom:20px}
.public-duo,.city-paths{border-radius:10px;overflow:hidden}
.audience-item[open]{border-radius:8px}
.audience-item summary,.faq-list summary{min-height:64px}
.line-link{min-height:44px}
.line-contact{padding-block:85px}
.line-contact h2{letter-spacing:-.04em}
.line-contact-grid{gap:clamp(48px,8vw,112px)}
.line-contact-form .line-button{border-radius:var(--ui-radius)}
.line-family-back{padding-block:43px}
.footer-happy,.line-page .footer-happy{width:180px;height:68px}
.footer-nav a{display:flex;align-items:center;min-height:38px;font-size:.875rem}
.footer-nav{gap:3px 25px}
.footer-nav [aria-current=page]{text-decoration:underline;text-underline-offset:6px}
.footer-bottom{font-size:.75rem;line-height:1.7;gap:16px 25px}
.footer-bottom a{min-height:38px;font-size:.75rem}
@media(min-width:1600px){.line-page .line-hero h1{max-width:715px}.hero-content{padding-top:166px;padding-bottom:155px}}




@media print{.family-disclosure,.mobile-nav,.section-nav{display:none!important}html{scroll-padding-top:0}.hero,.line-page .line-hero{min-height:0}.line-hero-content,.hero-content{padding-top:30px}.site-header{display:none!important}}

/* Partner signatures retain each institution's original artwork and clear space. */
.partner-eyebrow{font-size:.875rem;font-weight:400;line-height:1.6;margin:0}
.partner-logo-surface{display:flex;align-items:center;justify-content:center;flex:0 1 208px;width:208px;max-width:100%;height:104px;padding:12px;background:#fff;border-radius:8px}
.partner-logo-surface--ifsc{flex-basis:144px;width:144px;height:166px;padding:16px}
.partner-logo{display:block;width:100%;height:100%;object-fit:contain}
.panel-partner{display:flex;align-items:center;flex-wrap:wrap;gap:16px 28px;margin-top:30px;padding-top:26px;border-top:1px solid #ffffff30;max-width:480px}
.panel-partner .partner-eyebrow{flex:1 1 100px;max-width:160px;color:#e5e9f0}
.line-partner{background:#fff;color:var(--navy);border-bottom:1px solid #11172b15}
.line-partner-inner{display:flex;align-items:center;justify-content:space-between;gap:28px 48px;padding-block:28px}
.line-partner-copy{max-width:660px}
.line-partner .partner-eyebrow{color:#566172}
.line-partner h2{font-size:clamp(1.5rem,2.6vw,2rem);line-height:1.25;letter-spacing:-.025em;margin:8px 0 0;text-wrap:balance}
.line-partner .partner-logo-surface{flex-shrink:0}
