/* Inclusive Minds Widgets - GENERATED by tools/build.py from the design stylesheet. Do not edit. */
:root{--sage-950: #16211d; --sage-900: #1e2d27; --sage-800: #2a3d35; --sage-700: #3b5549; --sage-600: #4f6d60; --sage-500: #6b887b; --sage-300: #a9bdb2; --sage-200: #cfdbd3; --sage-100: #e6ede8; --sage-50: #f2f6f3; --beige-50: #fbf8f3; --beige-100: #f5efe5; --beige-200: #ece2d2; --beige-300: #dccbb2; --sand: #b89c74; --sand-dark: #8f7552; --charcoal: #1f2326; --ink: #2c3134; --muted: #5b6361; --line: rgba(31, 35, 38, .1); --white: #ffffff; --font-serif: "Cormorant Garamond", "Iowan Old Style", Georgia, serif; --font-sans: "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif; --fs-display: clamp(2.6rem, 1.6rem + 4.2vw, 5.2rem); --fs-h1: clamp(2.4rem, 1.6rem + 3.2vw, 4.4rem); --fs-h2: clamp(2rem, 1.4rem + 2.2vw, 3.3rem); --fs-h3: clamp(1.5rem, 1.2rem + 1vw, 2rem); --fs-lead: clamp(1.06rem, 1rem + .35vw, 1.25rem); --container: 1240px; --gutter: clamp(16px, 4vw, 40px); --section: clamp(64px, 9vw, 140px); --radius-sm: 10px; --radius: 18px; --radius-lg: 28px; --shadow-sm: 0 1px 2px rgba(22, 33, 29, .05), 0 4px 14px rgba(22, 33, 29, .05); --shadow: 0 2px 6px rgba(22, 33, 29, .05), 0 18px 48px -12px rgba(22, 33, 29, .16); --shadow-lg: 0 30px 80px -20px rgba(22, 33, 29, .32); --ease: cubic-bezier(.22, .61, .36, 1); --header-h: 100px;}
.imp *,.imp *::before,.imp *::after{box-sizing: border-box;}
html{scroll-behavior: smooth; -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--header-h) + 16px);}
.imp{margin: 0; font-family: var(--font-sans); font-size: 1.0625rem; line-height: 1.75; color: var(--ink); background: var(--beige-50); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: clip;}
.imp img{max-width: 100%; height: auto; display: block;}
.imp a{color: inherit;}
.imp p{margin: 0 0 1.1em;}
.imp p:last-child{margin-bottom: 0;}
.imp ul,.imp ol{margin: 0; padding: 0;}
.imp h1,.imp h2,.imp h3,.imp h4,.imp h5,.imp h6{font-family: var(--font-serif); font-weight: 500; line-height: 1.08; letter-spacing: -.01em; color: var(--charcoal); margin: 0 0 .5em;}
.imp h1{font-size: var(--fs-h1);}
.imp h2{font-size: var(--fs-h2);}
.imp h3{font-size: var(--fs-h3);}
.imp em{font-style: italic;}
.imp ::selection{background: var(--sage-200); color: var(--sage-950);}
.imp :focus-visible{outline: 2px solid var(--sand); outline-offset: 3px; border-radius: 6px;}
.imp .skip-link{position: absolute; left: 16px; top: -60px; z-index: 1000; background: var(--sage-900); color: var(--white); padding: 10px 18px; border-radius: 999px; text-decoration: none; font-weight: 600; transition: top .2s var(--ease);}
.imp .skip-link:focus{top: 16px;}
.imp .visually-hidden{position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;}
.imp .container{width: 100%; max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter);}
.imp .container--narrow{max-width: 880px;}
.imp .section{padding: var(--section) 0; position: relative;}
.imp .section--tight{padding: calc(var(--section) * .6) 0;}
.imp .bg-white{background: var(--white);}
.imp .bg-beige{background: var(--beige-100);}
.imp .bg-sage-50{background: var(--sage-50);}
.imp .bg-dark{background: var(--sage-900); color: rgba(255, 255, 255, .78);}
.imp .bg-dark h1,.imp .bg-dark h2,.imp .bg-dark h3,.imp .bg-dark h4,.imp .bg-dark h5{color: var(--white);}
.imp .grid-2{display: grid; grid-template-columns: 1fr; gap: clamp(40px, 6vw, 96px); align-items: center;}
@media (min-width: 960px){.imp .grid-2{grid-template-columns: 1fr 1fr;}
.imp .grid-2--wide-left{grid-template-columns: 1.1fr .9fr;}
.imp .grid-2--wide-right{grid-template-columns: .9fr 1.1fr;}
.imp .grid-2--top{align-items: start;}
.imp .faq-aside-sticky{position: sticky; top: calc(var(--header-h) + 40px);}}
.imp .eyebrow{display: inline-flex; align-items: center; gap: 12px; font-family: var(--font-sans); font-size: .78rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--sage-600); margin-bottom: 22px;}
.imp .eyebrow::before{content: ""; width: 28px; height: 1px; background: currentColor; opacity: .7;}
.imp .bg-dark .eyebrow,.imp .eyebrow--light{color: var(--sage-300);}
.imp .section-head{max-width: 760px; margin-bottom: clamp(48px, 6vw, 80px);}
.imp .section-head--center{margin-left: auto; margin-right: auto; text-align: center;}
.imp .section-head--center .eyebrow{justify-content: center;}
.imp .section-head p{font-size: var(--fs-lead); color: var(--muted);}
.imp .bg-dark .section-head p{color: rgba(255, 255, 255, .72);}
.imp .heading-italic em,.imp h2 em,.imp h1 em{font-style: italic; color: var(--sage-600);}
.imp .bg-dark h2 em,.imp .hero h1 em,.imp .page-hero h1 em{color: var(--beige-300);}
.imp .lead{font-size: var(--fs-lead); color: var(--muted); line-height: 1.7;}
.imp .btn{--btn-bg: var(--sage-800); --btn-fg: var(--white); --btn-bd: var(--sage-800); display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 54px; padding: 14px 28px; font-family: var(--font-sans); font-size: .95rem; font-weight: 600; letter-spacing: .01em; line-height: 1.2; text-align: center; text-decoration: none; color: var(--btn-fg); background: var(--btn-bg); border: 1px solid var(--btn-bd); border-radius: 999px; cursor: pointer; transition: transform .35s var(--ease), background-color .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease), box-shadow .35s var(--ease);}
.imp .btn svg{width: 18px; height: 18px; flex: none; transition: transform .35s var(--ease);}
.imp .btn:hover{transform: translateY(-2px); box-shadow: 0 14px 30px -12px rgba(22, 33, 29, .45);}
.imp .btn:hover svg{transform: translateX(4px);}
.imp .btn:active{transform: translateY(0);}
.imp .btn--primary:hover{--btn-bg: var(--sage-700); --btn-bd: var(--sage-700);}
.imp .btn--sand{--btn-bg: var(--beige-200); --btn-fg: var(--sage-950); --btn-bd: var(--beige-200);}
.imp .btn--sand:hover{--btn-bg: var(--white); --btn-bd: var(--white);}
.imp .btn--outline{--btn-bg: transparent; --btn-fg: var(--sage-900); --btn-bd: rgba(31, 45, 39, .28);}
.imp .btn--outline:hover{--btn-bg: var(--sage-900); --btn-fg: var(--white); --btn-bd: var(--sage-900);}
.imp .btn--ghost-light{--btn-bg: rgba(255, 255, 255, .06); --btn-fg: var(--white); --btn-bd: rgba(255, 255, 255, .38); backdrop-filter: blur(6px);}
.imp .btn--ghost-light:hover{--btn-bg: var(--white); --btn-fg: var(--sage-950); --btn-bd: var(--white);}
.imp .btn--sm{min-height: 44px; padding: 10px 20px; font-size: .88rem;}
.imp .btn-row{display: flex; flex-wrap: wrap; gap: 14px; margin-top: 36px;}
.imp .link-arrow{display: inline-flex; align-items: center; gap: 10px; font-weight: 600; font-size: .95rem; color: var(--sage-800); text-decoration: none; padding-bottom: 4px; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .4s var(--ease), color .3s;}
.imp .link-arrow svg{width: 18px; height: 18px; transition: transform .35s var(--ease);}
.imp .link-arrow:hover{background-size: 100% 1px;}
.imp .link-arrow:hover svg{transform: translateX(4px);}
.imp .imp-header{position: fixed; inset: 0 0 auto 0; z-index: 100; padding: 14px 0; transition: padding .4s var(--ease), transform .45s var(--ease);}
.imp .imp-header.is-hidden{transform: translateY(-130%);}
.imp .imp-header__bar{display: flex; align-items: center; justify-content: space-between; gap: 24px; height: 84px; padding: 0 14px 0 22px; background: rgba(255, 255, 255, .9); backdrop-filter: saturate(160%) blur(16px); -webkit-backdrop-filter: saturate(160%) blur(16px); border: 1px solid rgba(255, 255, 255, .6); border-radius: 999px; box-shadow: 0 10px 40px -18px rgba(22, 33, 29, .35); transition: height .4s var(--ease), box-shadow .4s var(--ease), background-color .4s var(--ease);}
.imp .imp-header.is-scrolled{padding: 8px 0;}
.imp .imp-header.is-scrolled .imp-header__bar{height: 72px; background: rgba(255, 255, 255, .96); box-shadow: 0 12px 40px -16px rgba(22, 33, 29, .3);}
.imp .brand{display: inline-flex; align-items: center; flex: none; text-decoration: none;}
.imp .brand img{height: 68px; width: auto; transition: height .4s var(--ease);}
.imp .imp-header.is-scrolled .brand img{height: 58px;}
.imp .nav{display: none;}
.imp .nav ul{list-style: none; display: flex; align-items: center; gap: 4px;}
.imp .nav a{position: relative; display: block; padding: 10px 14px; border-radius: 999px; font-size: .9rem; font-weight: 500; color: var(--ink); text-decoration: none; transition: color .3s, background-color .3s;}
.imp .nav a:hover{color: var(--sage-800); background: var(--sage-50);}
.imp .nav a[aria-current="page"]{color: var(--sage-800); font-weight: 700;}
.imp .nav a[aria-current="page"]::after{content: ""; position: absolute; left: 50%; bottom: 3px; width: 4px; height: 4px; margin-left: -2px; border-radius: 50%; background: var(--sand);}
.imp .header-cta{display: none;}
.imp .menu-toggle{display: inline-flex; align-items: center; justify-content: center; gap: 10px; height: 50px; padding: 0 18px 0 20px; border: 0; border-radius: 999px; cursor: pointer; background: var(--sage-900); color: var(--white); font: 600 .88rem/1 var(--font-sans);}
.imp .menu-toggle__icon{position: relative; width: 18px; height: 12px;}
.imp .menu-toggle__icon span{position: absolute; left: 0; width: 100%; height: 1.5px; background: currentColor; border-radius: 2px; transition: transform .35s var(--ease), top .35s var(--ease), opacity .2s;}
.imp .menu-toggle__icon span:nth-child(1){top: 0;}
.imp .menu-toggle__icon span:nth-child(2){top: 5.25px;}
.imp .menu-toggle__icon span:nth-child(3){top: 10.5px;}
.menu-open .imp .menu-toggle__icon span:nth-child(1){top: 5.25px; transform: rotate(45deg);}
.menu-open .imp .menu-toggle__icon span:nth-child(2){opacity: 0;}
.menu-open .imp .menu-toggle__icon span:nth-child(3){top: 5.25px; transform: rotate(-45deg);}
@media (min-width: 1180px){.imp .nav{display: block;}
.imp .header-cta{display: inline-flex;}
.imp .menu-toggle{display: none;}}
@media (max-width: 560px){:root{--header-h: 80px;}
.imp .imp-header{padding: 10px 0;}
.imp .imp-header__bar{height: 66px; padding: 0 8px 0 16px;}
.imp .brand img{height: 48px;}
.imp .menu-toggle{height: 48px;}
.imp .menu-toggle__label{display: none;}
.imp .menu-toggle{width: 48px; padding: 0;}}
.imp .mobile-nav{position: fixed; inset: 0; z-index: 90; display: flex; flex-direction: column; padding: calc(var(--header-h) + 32px) var(--gutter) 32px; background: var(--sage-950); color: var(--white); opacity: 0; visibility: hidden; transition: opacity .45s var(--ease), visibility .45s; overflow-y: auto;}
.menu-open .imp .mobile-nav{opacity: 1; visibility: visible;}
.imp .mobile-nav ul{list-style: none;}
.imp .mobile-nav li{border-bottom: 1px solid rgba(255, 255, 255, .1); transform: translateY(16px); opacity: 0; transition: transform .5s var(--ease), opacity .5s var(--ease);}
.menu-open .imp .mobile-nav li{transform: none; opacity: 1;}
.menu-open .imp .mobile-nav li:nth-child(2){transition-delay: .04s;}
.menu-open .imp .mobile-nav li:nth-child(3){transition-delay: .08s;}
.menu-open .imp .mobile-nav li:nth-child(4){transition-delay: .12s;}
.menu-open .imp .mobile-nav li:nth-child(5){transition-delay: .16s;}
.menu-open .imp .mobile-nav li:nth-child(6){transition-delay: .2s;}
.imp .mobile-nav nav a{display: flex; justify-content: space-between; align-items: center; padding: 18px 0; font-family: var(--font-serif); font-size: clamp(1.9rem, 6vw, 2.6rem); line-height: 1.1; color: var(--white); text-decoration: none;}
.imp .mobile-nav nav a[aria-current="page"]{color: var(--beige-300); font-style: italic;}
.imp .mobile-nav nav a svg{width: 22px; height: 22px; opacity: .5;}
.imp .mobile-nav__actions{display: grid; gap: 12px; margin-top: 36px;}
.imp .mobile-nav__meta{margin-top: auto; padding-top: 36px; font-size: .92rem; color: rgba(255, 255, 255, .6);}
.imp .mobile-nav__meta a{font-family: var(--font-sans); font-size: inherit; display: inline; padding: 0; color: var(--beige-200);}
body.menu-open{overflow: hidden;}
@media (min-width: 1180px){.imp .mobile-nav{display: none;}}
.imp .hero{position: relative; isolation: isolate; min-height: clamp(680px, 100svh, 960px); display: flex; align-items: flex-end; padding: calc(var(--header-h) + 60px) 0 clamp(56px, 8vw, 96px); color: var(--white); overflow: hidden; background: #01112b;}
.imp .hero__media{position: absolute; inset: 0; z-index: -2;}
.imp .hero__media img{width: 100%; height: 100%; object-fit: cover; object-position: 100% 50%; transform: scale(1.06); animation: heroZoom 18s var(--ease) forwards;}
@keyframes heroZoom{to { transform: scale(1); }}
.imp .hero::before{content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(1, 14, 36, .92) 0%, rgba(1, 14, 36, .72) 34%, rgba(1, 14, 36, .1) 60%, rgba(1, 14, 36, 0) 100%), linear-gradient(0deg, rgba(1, 12, 30, .8) 0%, rgba(1, 12, 30, 0) 38%);}
@media (max-width: 1079px){.imp .hero__media img{object-position: 80% 50%;}
.imp .hero::before{background: linear-gradient(0deg, rgba(1, 12, 30, .97) 0%, rgba(1, 12, 30, .88) 45%, rgba(1, 12, 30, .45) 75%, rgba(1, 12, 30, .25) 100%);}}
.imp .hero__inner{display: grid; gap: 48px; align-items: end; width: 100%;}
@media (min-width: 1080px){.imp .hero__inner{grid-template-columns: minmax(0, 1fr) 360px;}}
.imp .hero__tagline{display: inline-flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; margin-bottom: 28px; padding: 9px 18px 9px 12px; font-size: .8rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--beige-200); border: 1px solid rgba(255, 255, 255, .18); border-radius: 999px; background: rgba(255, 255, 255, .05); backdrop-filter: blur(8px);}
.imp .hero__tagline .dot{width: 8px; height: 8px; border-radius: 50%; background: var(--sage-300); box-shadow: 0 0 0 4px rgba(169, 189, 178, .2); flex: none;}
.imp .hero h1{font-size: clamp(1.8rem, 1.15rem + 1.9vw, 3.1rem); line-height: 1.1; color: var(--white); max-width: 21ch; margin-bottom: 26px; font-weight: 400;}
.imp .hero__lead{max-width: 580px; font-size: var(--fs-lead); color: rgba(255, 255, 255, .8);}
.imp .hero .btn-row{margin-top: 40px;}
.imp .hero-card{padding: 28px; border-radius: var(--radius); background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .16); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);}
.imp .hero-card__logos{display: grid; grid-template-columns: 1fr 1fr; gap: 12px;}
.imp .hero-card__logos img{width: 100%; border-radius: 12px; background: var(--white); aspect-ratio: 3 / 2; object-fit: contain; padding: 12px 14px;}
.imp .hero-card__services{list-style: none; margin-top: 22px; display: grid; gap: 2px;}
.imp .hero-card__services li{display: flex; align-items: center; gap: 12px; padding: 10px 0; border-top: 1px solid rgba(255, 255, 255, .12); font-size: .92rem; color: rgba(255, 255, 255, .85);}
.imp .hero-card__services li:first-child{border-top: 0;}
.imp .hero-card__services svg{width: 18px; height: 18px; color: var(--sage-300); flex: none;}
.imp .hero-card__services a{text-decoration: none;}
.imp .hero-card__services a:hover{color: var(--white);}
.imp .scroll-cue{position: absolute; left: 50%; bottom: 24px; transform: translateX(-50%); width: 26px; height: 42px; border: 1.5px solid rgba(255, 255, 255, .4); border-radius: 20px; display: none;}
.imp .scroll-cue::after{content: ""; position: absolute; left: 50%; top: 8px; width: 3px; height: 8px; margin-left: -1.5px; border-radius: 2px; background: var(--white); animation: cue 2s infinite var(--ease);}
@keyframes cue{0% { opacity: 0; transform: translateY(0); } 40% { opacity: 1; } 80%, 100% { opacity: 0; transform: translateY(12px); }}
@media (min-width: 1080px) and (min-height: 760px){.imp .scroll-cue{display: block;}}
.imp .page-hero{position: relative; isolation: isolate; overflow: hidden; padding: calc(var(--header-h) + clamp(70px, 9vw, 130px)) 0 clamp(70px, 8vw, 120px); color: var(--white); background: var(--sage-950);}
.imp .page-hero__media{position: absolute; inset: 0; z-index: -2;}
.imp .page-hero__media img{width: 100%; height: 100%; object-fit: cover; object-position: 70% 50%;}
.imp .page-hero::before{content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(95deg, rgba(22, 33, 29, .97) 0%, rgba(22, 33, 29, .86) 45%, rgba(30, 45, 39, .45) 100%);}
.imp .page-hero::after{content: ""; position: absolute; inset: 0; z-index: -1; background: var(--sage-700); mix-blend-mode: color; opacity: .55;}
.imp .page-hero h1{color: var(--white); max-width: 18ch; font-weight: 400; margin-bottom: 24px;}
.imp .page-hero .lead{color: rgba(255, 255, 255, .78); max-width: 640px;}
.imp .breadcrumb{list-style: none; display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 28px; font-size: .82rem; letter-spacing: .06em; text-transform: uppercase; font-weight: 600;}
.imp .breadcrumb li{display: flex; align-items: center; gap: 10px; color: var(--sage-300);}
.imp .breadcrumb li + li::before{content: ""; width: 5px; height: 5px; border-radius: 50%; background: rgba(255, 255, 255, .35);}
.imp .breadcrumb a{color: rgba(255, 255, 255, .75); text-decoration: none;}
.imp .breadcrumb a:hover{color: var(--white);}
.imp .page-hero__curve{position: absolute; left: 0; right: 0; bottom: -1px; height: 40px; background: var(--beige-50); border-radius: 40px 40px 0 0;}
.imp .frame{position: relative;}
.imp .frame__img{position: relative; overflow: hidden; border-radius: var(--radius-lg); box-shadow: var(--shadow-lg);}
.imp .frame__img img{width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease);}
.imp .frame:hover .frame__img img{transform: scale(1.03);}
.imp .frame--arch .frame__img{border-radius: 999px 999px var(--radius-lg) var(--radius-lg); aspect-ratio: 4 / 5;}
.imp .frame--arch .frame__img img{object-position: 45% 30%;}
.imp .frame__backdrop{position: absolute; z-index: -1; inset: 8% -6% -6% 10%; border-radius: 999px 999px var(--radius-lg) var(--radius-lg); background: var(--beige-200);}
.imp .frame__badge{position: absolute; left: -12px; bottom: 36px; max-width: 290px; display: flex; gap: 14px; align-items: center; padding: 16px 20px; border-radius: var(--radius); background: var(--white); box-shadow: var(--shadow); font-size: .85rem; line-height: 1.45; color: var(--muted);}
.imp .frame__badge strong{display: block; color: var(--charcoal); font-size: .95rem; font-weight: 700; margin-bottom: 2px;}
.imp .frame__badge-icon{flex: none; width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; background: var(--sage-100); color: var(--sage-700);}
.imp .frame__badge-icon svg{width: 22px; height: 22px;}
@media (min-width: 960px){.imp .frame__badge{left: -40px;}}
.imp .frame--logo{display: grid; place-items: center; padding: clamp(32px, 5vw, 64px); border-radius: var(--radius-lg); background: var(--white); box-shadow: var(--shadow); position: relative; overflow: hidden;}
.imp .frame--logo::before{content: ""; position: absolute; inset: auto -20% -40% auto; width: 70%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, var(--sage-100), transparent 70%);}
.imp .frame--logo img{position: relative; max-width: 420px; width: 100%;}
.imp .frame--rounded .frame__img{aspect-ratio: 5 / 4;}
.imp .frame--tall .frame__img{aspect-ratio: 4 / 5;}
.imp .frame--duo .frame__img::after{content: ""; position: absolute; inset: 0; background: var(--sage-700); mix-blend-mode: color; opacity: .45; pointer-events: none;}
.imp .prose p{color: var(--muted);}
.imp .prose p.is-strong{color: var(--ink); font-weight: 500;}
.imp .bg-dark .prose p{color: rgba(255, 255, 255, .74);}
.imp .check-list{list-style: none; display: grid; gap: 12px; margin: 22px 0 26px;}
.imp .check-list li{position: relative; padding-left: 34px; color: var(--ink); line-height: 1.55;}
.imp .check-list li::before{content: ""; position: absolute; left: 0; top: .15em; width: 22px; height: 22px; border-radius: 50%; background: var(--sage-100) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233b5549' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 13px no-repeat;}
.imp .check-list--2{grid-template-columns: 1fr;}
@media (min-width: 720px){.imp .check-list--2{grid-template-columns: 1fr 1fr; column-gap: 32px;}}
.imp .services-grid{display: grid; gap: 24px; grid-template-columns: 1fr;}
@media (min-width: 900px){.imp .services-grid{grid-template-columns: 1fr 1fr;}}
.imp .service-card{position: relative; display: flex; flex-direction: column; padding: clamp(28px, 3.4vw, 48px); background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-lg); transition: transform .5s var(--ease), box-shadow .5s var(--ease), border-color .5s var(--ease); overflow: hidden;}
.imp .service-card::before{content: ""; position: absolute; inset: 0 0 auto 0; height: 4px; background: linear-gradient(90deg, var(--sage-600), var(--sand)); transform: scaleX(0); transform-origin: left; transition: transform .6s var(--ease);}
.imp .service-card:hover{transform: translateY(-6px); box-shadow: var(--shadow); border-color: transparent;}
.imp .service-card:hover::before{transform: scaleX(1);}
.imp .service-card__media{margin: calc(-1 * clamp(28px, 3.4vw, 48px)) calc(-1 * clamp(28px, 3.4vw, 48px)) 28px; height: 260px; overflow: hidden;}
.imp .service-card__media img{width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease);}
.imp .service-card:hover .service-card__media img{transform: scale(1.06);}
.imp .service-card__top{display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 28px;}
.imp .service-card__icon{width: 64px; height: 64px; border-radius: 20px; display: grid; place-items: center; background: var(--sage-50); color: var(--sage-700); transition: background-color .5s var(--ease), color .5s var(--ease);}
.imp .service-card:hover .service-card__icon{background: var(--sage-800); color: var(--beige-100);}
.imp .service-card__icon svg{width: 30px; height: 30px;}
.imp .service-card__num{font-family: var(--font-serif); font-size: 1.1rem; font-style: italic; color: var(--sand-dark);}
.imp .service-card h3{font-size: clamp(1.7rem, 1.3rem + 1vw, 2.2rem); margin-bottom: 16px;}
.imp .service-card__intro{font-size: 1.08rem; color: var(--ink); font-weight: 500;}
.imp .service-card p{color: var(--muted); font-size: 1rem;}
.imp .service-card .check-list{margin: 8px 0 22px;}
.imp .service-card .check-list li{font-size: .98rem;}
.imp .service-card__foot{margin-top: auto; padding-top: 26px; border-top: 1px solid var(--line);}
.imp .lang-grid{display: grid; grid-template-columns: 1fr 1fr; gap: 14px;}
.imp .lang-card{position: relative; overflow: hidden; padding: 26px 24px; min-height: 150px; display: flex; flex-direction: column; justify-content: space-between; border-radius: var(--radius); background: rgba(255, 255, 255, .04); border: 1px solid rgba(255, 255, 255, .12); transition: background-color .4s var(--ease), transform .4s var(--ease), border-color .4s;}
.imp .lang-card:hover{background: rgba(255, 255, 255, .09); transform: translateY(-4px); border-color: rgba(255, 255, 255, .25);}
.imp .lang-card__script{font-family: var(--font-serif); font-size: clamp(2rem, 1.5rem + 1.6vw, 2.8rem); line-height: 1.2; color: var(--beige-200);}
.imp .lang-card__name{font-size: .82rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--sage-300);}
.imp .lang-label{display: block; margin-bottom: 18px; font-size: .78rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--sage-300);}
.imp .bg-dark .glow{position: absolute; pointer-events: none; border-radius: 50%; filter: blur(10px); background: radial-gradient(circle, rgba(107, 136, 123, .35), transparent 65%);}
.imp .conditions{display: grid; gap: 14px; grid-template-columns: 1fr; list-style: none;}
@media (min-width: 600px){.imp .conditions{grid-template-columns: 1fr 1fr;}}
@media (min-width: 1000px){.imp .conditions{grid-template-columns: repeat(3, 1fr);}}
.imp .condition{display: flex; align-items: center; gap: 16px; padding: 20px 22px; border-radius: var(--radius); background: var(--white); border: 1px solid var(--line); font-weight: 600; color: var(--charcoal); line-height: 1.35; transition: transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s;}
.imp .condition:hover{transform: translateY(-3px); box-shadow: var(--shadow-sm); border-color: var(--sage-200);}
.imp .condition__num{flex: none; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; font-family: var(--font-serif); font-size: 1.05rem; font-style: italic; background: var(--sage-50); color: var(--sage-700);}
.imp .callout{display: grid; gap: 20px; align-items: center; margin-top: 28px; padding: clamp(24px, 3vw, 36px); border-radius: var(--radius-lg); background: var(--sage-800); color: rgba(255, 255, 255, .82);}
@media (min-width: 800px){.imp .callout{grid-template-columns: auto 1fr auto;}}
.imp .callout__tag{justify-self: start; padding: 8px 16px; border-radius: 999px; font-size: .78rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; background: var(--beige-200); color: var(--sage-900);}
.imp .callout p{margin: 0; font-size: 1.05rem;}
.imp .pull-quote{position: relative; margin: 34px 0 0; padding: 30px 0 0 0; border-top: 1px solid var(--line);}
.imp .pull-quote__label{font-size: .95rem; color: var(--muted); margin-bottom: 10px;}
.imp .pull-quote blockquote{margin: 0; font-family: var(--font-serif); font-style: italic; font-size: clamp(1.9rem, 1.4rem + 1.6vw, 2.8rem); line-height: 1.15; color: var(--sage-800);}
.imp .pull-quote blockquote::before{content: "\201C"; color: var(--sand); margin-right: .05em;}
.imp .pull-quote blockquote::after{content: "\201D"; color: var(--sand); margin-left: .05em;}
.imp .subtitle-serif{font-family: var(--font-serif); font-style: italic; font-size: clamp(1.3rem, 1.1rem + .6vw, 1.6rem); color: var(--sage-600); margin-bottom: 24px; line-height: 1.3;}
.imp .process{display: grid; gap: 48px;}
@media (min-width: 1000px){.imp .process{grid-template-columns: .8fr 1.2fr; gap: 80px;}
.imp .process__intro{position: sticky; top: calc(var(--header-h) + 40px); align-self: start;}}
.imp .steps{list-style: none; position: relative; display: grid; gap: 18px; counter-reset: step;}
.imp .step{position: relative; display: grid; grid-template-columns: 76px 1fr; gap: 24px; padding: 28px; border-radius: var(--radius-lg); background: var(--white); border: 1px solid var(--line); transition: transform .5s var(--ease), box-shadow .5s var(--ease), border-color .5s;}
.imp .step:hover{transform: translateX(6px); box-shadow: var(--shadow); border-color: transparent;}
.imp .step__icon{width: 76px; height: 76px; border-radius: 22px; overflow: hidden; background: var(--sage-50); display: grid; place-items: center; padding: 12px;}
.imp .step__icon img{width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply;}
.imp .step__num{font-family: var(--font-serif); font-style: italic; font-size: 1.05rem; color: var(--sand-dark); display: block; margin-bottom: 2px;}
.imp .step h3{font-size: 1.65rem; margin-bottom: 10px;}
.imp .step p{color: var(--muted); font-size: 1rem; margin-bottom: 16px;}
@media (max-width: 520px){.imp .step{grid-template-columns: 1fr; gap: 16px; padding: 24px;}
.imp .step:hover{transform: translateY(-4px);}}
.imp .cred-strip{display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 20px;}
.imp .cred-strip img{width: 220px; aspect-ratio: 3 / 2; object-fit: contain; padding: 22px 26px; border-radius: var(--radius); background: var(--white); border: 1px solid var(--line); transition: transform .4s var(--ease), box-shadow .4s;}
.imp .cred-strip img:hover{transform: translateY(-3px); box-shadow: var(--shadow-sm);}
.imp .cta-band{position: relative; padding: var(--section) 0;}
.imp .cta-card{position: relative; overflow: hidden; isolation: isolate; display: grid; gap: 36px; align-items: center; padding: clamp(40px, 6vw, 88px); border-radius: clamp(24px, 3vw, 40px); background: var(--sage-900); color: rgba(255, 255, 255, .8);}
@media (min-width: 960px){.imp .cta-card{grid-template-columns: 1.3fr 1fr;}}
.imp .cta-card h2{color: var(--white); margin-bottom: 18px;}
.imp .cta-card p{font-size: var(--fs-lead); max-width: 560px;}
.imp .cta-card .btn-row{margin-top: 0;}
@media (min-width: 960px){.imp .cta-card .btn-row{justify-content: flex-end;}}
.imp .cta-card::before{content: ""; position: absolute; z-index: -1; width: 520px; aspect-ratio: 1; right: -140px; top: -220px; border-radius: 50%; background: radial-gradient(circle, rgba(107, 136, 123, .5), transparent 65%);}
.imp .cta-card::after{content: ""; position: absolute; z-index: -1; width: 380px; aspect-ratio: 1; left: -160px; bottom: -220px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .1); box-shadow: 0 0 0 60px rgba(255, 255, 255, .02), 0 0 0 120px rgba(255, 255, 255, .015);}
.imp .service-nav{position: sticky; top: calc(var(--header-h) + 4px); z-index: 20; display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; padding: 8px; margin: 0 auto clamp(40px, 5vw, 64px); width: max-content; max-width: 100%; background: rgba(255, 255, 255, .92); backdrop-filter: blur(12px); border: 1px solid var(--line); border-radius: 999px; box-shadow: var(--shadow-sm);}
.imp .service-nav::-webkit-scrollbar{display: none;}
.imp .service-nav{transition: top .45s var(--ease);}
.imp body:has(.imp-header.is-hidden) .service-nav{top: 12px;}
.imp .service-nav a{flex: none; padding: 10px 18px; border-radius: 999px; font-size: .88rem; font-weight: 600; color: var(--muted); text-decoration: none; white-space: nowrap; transition: background-color .3s, color .3s;}
.imp .service-nav a:hover{color: var(--sage-800); background: var(--sage-50);}
.imp .service-nav a.is-active{background: var(--sage-800); color: var(--white);}
.imp .service-detail{display: grid; gap: clamp(28px, 4vw, 64px); padding: clamp(28px, 4vw, 64px); border-radius: clamp(24px, 3vw, 36px); background: var(--white); border: 1px solid var(--line); margin-bottom: 28px; scroll-margin-top: 90px;}
@media (min-width: 960px){.imp .service-detail{grid-template-columns: 5fr 7fr;}
.imp .service-detail:nth-child(even) .service-detail__aside{order: 2;}}
.imp .service-detail__aside{position: relative; overflow: hidden; isolation: isolate; display: flex; flex-direction: column; justify-content: space-between; gap: 40px; min-height: 300px; padding: clamp(28px, 3vw, 40px); border-radius: var(--radius-lg); background: var(--sage-800); color: var(--white);}
.imp .service-detail__media{position: absolute; inset: 0; z-index: -3;}
.imp .service-detail__media img{width: 100%; height: 100%; object-fit: cover;}
.imp .service-detail__aside::before{content: ""; position: absolute; inset: 0; z-index: -2; background: linear-gradient(180deg, rgba(15, 23, 20, .35), rgba(15, 23, 20, .78));}
.imp .service-detail__aside::after{content: ""; position: absolute; z-index: -1; right: -80px; bottom: -80px; width: 260px; aspect-ratio: 1; border-radius: 50%; border: 1px solid currentColor; opacity: .15; box-shadow: 0 0 0 40px rgba(255, 255, 255, .04);}
.imp .service-detail__num{font-family: var(--font-serif); font-size: clamp(4rem, 3rem + 4vw, 7rem); line-height: .8; font-style: italic; opacity: .35;}
.imp .service-detail__aside h2{color: inherit; font-size: clamp(1.8rem, 1.3rem + 1.1vw, 2.35rem); margin: 0; overflow-wrap: break-word; hyphens: auto;}
.imp .service-detail__icon{width: 56px; height: 56px; border-radius: 18px; display: grid; place-items: center; background: rgba(255, 255, 255, .16);}
.imp .service-detail__icon svg{width: 28px; height: 28px;}
.imp .service-detail__body{align-self: center;}
.imp .service-detail__body > p:first-child{font-size: var(--fs-lead); color: var(--ink); font-weight: 500; line-height: 1.6;}
.imp .service-detail__body p{color: var(--muted);}
.imp .service-detail__body .btn{margin-top: 18px;}
.imp .name-block h2{margin-bottom: 8px;}
.imp .name-block__role{font-family: var(--font-serif); font-style: italic; font-size: 1.35rem; color: var(--sage-600); margin-bottom: 28px;}
.imp .stat-row{display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin: 32px 0 0;}
.imp .stat{padding: 18px 20px; border-radius: var(--radius); background: var(--sage-50); border: 1px solid var(--sage-100);}
.imp .stat__value{font-family: var(--font-serif); font-size: 1.6rem; line-height: 1.1; color: var(--sage-800);}
.imp .stat__label{font-size: .82rem; color: var(--muted); margin-top: 4px; line-height: 1.4;}
.imp .cred-panel{padding: clamp(28px, 3.5vw, 44px); border-radius: var(--radius-lg); background: var(--white); border: 1px solid var(--line);}
.imp .cred-panel h3{font-size: 1.7rem; display: flex; align-items: center; gap: 14px; margin-bottom: 24px;}
.imp .cred-panel h3 .ico{width: 44px; height: 44px; flex: none; border-radius: 14px; background: var(--sage-50); color: var(--sage-700); display: grid; place-items: center;}
.imp .cred-panel h3 .ico svg{width: 22px; height: 22px;}
.imp .qual-list{list-style: none; display: grid;}
.imp .qual-list li{display: flex; gap: 16px; align-items: baseline; padding: 14px 0; border-top: 1px solid var(--line); font-weight: 500; color: var(--charcoal);}
.imp .qual-list li:first-child{border-top: 0; padding-top: 0;}
.imp .qual-list li span{flex: none; font-family: var(--font-serif); font-style: italic; color: var(--sand-dark); width: 24px;}
.imp .reg-list{display: grid; gap: 14px;}
.imp .reg{display: grid; grid-template-columns: 96px 1fr; gap: 18px; align-items: center; padding: 16px; border-radius: var(--radius); background: var(--beige-50); border: 1px solid var(--line); transition: transform .4s var(--ease), box-shadow .4s var(--ease);}
.imp .reg:hover{transform: translateY(-3px); box-shadow: var(--shadow-sm);}
.imp .reg__logo{width: 96px; aspect-ratio: 3 / 2; padding: 6px 8px; border-radius: 10px; background: var(--white); display: grid; place-items: center; overflow: hidden; border: 1px solid var(--line);}
.imp .reg__logo img{width: 100%; height: 100%; object-fit: contain;}
.imp .reg__logo--text{font-family: var(--font-serif); font-size: 1.4rem; font-weight: 600; color: var(--sage-700); letter-spacing: .04em;}
.imp .reg__title{font-weight: 700; color: var(--charcoal); line-height: 1.35; font-size: .98rem;}
.imp .reg__desc{font-size: .9rem; color: var(--muted); line-height: 1.45; margin-top: 3px;}
.imp .faq{display: grid; gap: 14px;}
.imp .faq details{border-radius: var(--radius); background: var(--white); border: 1px solid var(--line); transition: box-shadow .4s var(--ease), border-color .4s;}
.imp .faq details[open]{box-shadow: var(--shadow-sm); border-color: var(--sage-200);}
.imp .faq summary{list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 24px 26px; font-family: var(--font-serif); font-size: clamp(1.25rem, 1.1rem + .5vw, 1.5rem); font-weight: 600; color: var(--charcoal); line-height: 1.25;}
.imp .faq summary::-webkit-details-marker{display: none;}
.imp .faq summary .pm{position: relative; flex: none; width: 38px; height: 38px; border-radius: 50%; background: var(--sage-50); transition: background-color .3s, transform .4s var(--ease);}
.imp .faq summary .pm::before,.imp .faq summary .pm::after{content: ""; position: absolute; left: 50%; top: 50%; width: 14px; height: 1.6px; margin: -.8px 0 0 -7px; background: var(--sage-800); border-radius: 2px; transition: transform .4s var(--ease), background-color .3s;}
.imp .faq summary .pm::after{transform: rotate(90deg);}
.imp .faq details[open] summary .pm{background: var(--sage-800); transform: rotate(180deg);}
.imp .faq details[open] summary .pm::before,.imp .faq details[open] summary .pm::after{background: var(--white);}
.imp .faq details[open] summary .pm::after{transform: rotate(0);}
.imp .faq__body{padding: 0 26px 26px; color: var(--muted);}
.imp .path-grid{display: grid; gap: 24px;}
@media (min-width: 860px){.imp .path-grid{grid-template-columns: 1fr 1fr;}}
.imp .path-card{position: relative; overflow: hidden; isolation: isolate; display: flex; flex-direction: column; gap: 18px; padding: clamp(32px, 4vw, 56px); border-radius: clamp(24px, 3vw, 36px); background: var(--white); border: 1px solid var(--line); transition: transform .5s var(--ease), box-shadow .5s var(--ease);}
.imp .path-card:hover{transform: translateY(-6px); box-shadow: var(--shadow);}
.imp .path-card--dark{background: var(--sage-900); border-color: var(--sage-900); color: rgba(255, 255, 255, .78);}
.imp .path-card--dark h2{color: var(--white);}
.imp .path-card__icon{width: 64px; height: 64px; border-radius: 20px; display: grid; place-items: center; background: var(--sage-50); color: var(--sage-700);}
.imp .path-card--dark .path-card__icon{background: rgba(255, 255, 255, .08); color: var(--beige-200);}
.imp .path-card__icon svg{width: 30px; height: 30px;}
.imp .path-card h2{font-size: clamp(1.9rem, 1.5rem + 1.3vw, 2.6rem); margin: 8px 0 0;}
.imp .path-card p{font-size: 1.05rem; color: inherit; opacity: .92;}
.imp .path-card:not(.path-card--dark) p{color: var(--muted);}
.imp .path-card .btn{align-self: flex-start; margin-top: auto;}
.imp .path-card::after{content: ""; position: absolute; z-index: -1; right: -90px; top: -90px; width: 240px; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, var(--sage-100), transparent 70%);}
.imp .path-card--dark::after{background: radial-gradient(circle, rgba(107, 136, 123, .45), transparent 70%);}
.imp .topic-grid{list-style: none; display: grid; gap: 14px; counter-reset: topic;}
@media (min-width: 700px){.imp .topic-grid{grid-template-columns: 1fr 1fr;}}
.imp .topic{counter-increment: topic; display: flex; gap: 18px; align-items: flex-start; padding: 22px 24px; border-radius: var(--radius); background: var(--white); border: 1px solid var(--line); font-weight: 600; color: var(--charcoal); line-height: 1.45; transition: transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s;}
.imp .topic::before{content: counter(topic, decimal-leading-zero); flex: none; font-family: var(--font-serif); font-style: italic; font-weight: 500; font-size: 1.15rem; color: var(--sand-dark); line-height: 1.3;}
.imp .topic:hover{transform: translateY(-3px); box-shadow: var(--shadow-sm); border-color: var(--sage-200);}
.imp .note{display: flex; gap: 16px; align-items: flex-start; margin-top: 28px; padding: 22px 24px; border-radius: var(--radius); background: var(--sage-50); border: 1px dashed var(--sage-300); color: var(--sage-900);}
.imp .note svg{width: 24px; height: 24px; flex: none; color: var(--sage-600); margin-top: 2px;}
.imp .note p{margin: 0;}
.imp .chip-list{list-style: none; display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px;}
.imp .chip-list li{padding: 12px 20px; border-radius: 999px; font-size: .95rem; font-weight: 600; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .2); color: var(--white); transition: background-color .3s, color .3s;}
.imp .chip-list li:hover{background: var(--beige-200); color: var(--sage-950);}
.imp .info-grid{display: grid; gap: 18px; position: relative; z-index: 2;}
@media (min-width: 860px){.imp .info-grid{grid-template-columns: repeat(3, 1fr);}}
.imp .info-card{display: flex; flex-direction: column; gap: 6px; padding: 30px; border-radius: var(--radius-lg); background: var(--white); box-shadow: var(--shadow); transition: transform .4s var(--ease);}
.imp .info-card:hover{transform: translateY(-4px);}
.imp .info-card__icon{width: 54px; height: 54px; border-radius: 18px; display: grid; place-items: center; background: var(--sage-800); color: var(--beige-100); margin-bottom: 16px;}
.imp .info-card__icon svg{width: 24px; height: 24px;}
.imp .info-card__label{font-size: .76rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--sage-600);}
.imp .info-card h3{font-family: var(--font-sans); font-size: 1rem; font-weight: 600; color: var(--muted); margin: 8px 0 0; line-height: 1.4;}
.imp .info-card__value{font-family: var(--font-serif); font-size: 1.45rem; font-weight: 600; color: var(--charcoal); line-height: 1.3; margin: 0; word-break: break-word;}
.imp .info-card__value--email{font-family: var(--font-sans); font-size: 1rem; font-weight: 700; overflow-wrap: anywhere;}
.imp .info-card__value a{text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .4s var(--ease);}
.imp .info-card__value a:hover{background-size: 100% 1px;}
.imp .contact-layout{display: grid; gap: 28px;}
@media (min-width: 1000px){.imp .contact-layout{grid-template-columns: 1.05fr .95fr;}}
.imp .form-card{padding: clamp(28px, 4vw, 56px); border-radius: clamp(24px, 3vw, 36px); background: var(--white); border: 1px solid var(--line);}
.imp .form-card h2{margin-bottom: 32px;}
.imp .field{display: grid; gap: 8px; margin-bottom: 20px;}
.imp .field label{font-size: .9rem; font-weight: 700; color: var(--charcoal);}
.imp .field label .req{color: var(--sand-dark); margin-left: 2px;}
.imp .field input,.imp .field textarea{width: 100%; padding: 16px 18px; font: 500 1rem/1.5 var(--font-sans); color: var(--charcoal); background: var(--beige-50); border: 1px solid rgba(31, 35, 38, .14); border-radius: 14px; transition: border-color .3s, box-shadow .3s, background-color .3s;}
.imp .field textarea{min-height: 170px; resize: vertical;}
.imp .field input::placeholder,.imp .field textarea::placeholder{color: #8a908e;}
.imp .field input:hover,.imp .field textarea:hover{border-color: rgba(31, 35, 38, .28);}
.imp .field input:focus,.imp .field textarea:focus{outline: none; background: var(--white); border-color: var(--sage-600); box-shadow: 0 0 0 4px rgba(79, 109, 96, .15);}
.imp .field-row{display: grid; gap: 0 18px;}
@media (min-width: 640px){.imp .field-row{grid-template-columns: 1fr 1fr;}}
.imp .form-status{margin-top: 16px; font-size: .95rem; color: var(--sage-700); min-height: 1.5em;}
.imp .form-card__form .field-cover{display: flex !important; flex-direction: column !important; gap: 0 !important; margin-bottom: 20px !important;}
.imp .form-card__form .field-cover > span{display: none !important;}
.imp .form-card__form .field-cover > div{width: 100% !important;}
.imp .form-card__form input[type="text"],.imp .form-card__form input[type="email"],.imp .form-card__form textarea{width: 100% !important; padding: 16px 18px !important; box-sizing: border-box !important; font: 500 1rem/1.5 var(--font-sans) !important; color: var(--charcoal) !important; background: var(--beige-50) !important; border: 1px solid rgba(31, 35, 38, .14) !important; border-radius: 14px !important; transition: border-color .3s, box-shadow .3s, background-color .3s;}
.imp .form-card__form textarea{min-height: 170px !important; resize: vertical !important;}
.imp .form-card__form input::placeholder,.imp .form-card__form textarea::placeholder{color: #8a908e !important; opacity: 1 !important;}
.imp .form-card__form input:hover,.imp .form-card__form textarea:hover{border-color: rgba(31, 35, 38, .28) !important;}
.imp .form-card__form input:focus,.imp .form-card__form textarea:focus{outline: none !important; background: var(--white) !important; border-color: var(--sage-600) !important; box-shadow: 0 0 0 4px rgba(79, 109, 96, .15) !important;}
.imp .form-card__form .formcraft-icon{display: none !important;}
.imp .form-card__form .submit-button{display: inline-flex !important; align-items: center !important; justify-content: center !important; gap: 12px !important; min-height: 54px !important; padding: 14px 28px !important; border: 1px solid var(--sage-800) !important; border-radius: 999px !important; font: 600 .95rem/1.2 var(--font-sans) !important; color: var(--white) !important; background: var(--sage-800) !important; cursor: pointer; transition: transform .35s var(--ease), background-color .35s var(--ease);}
.imp .form-card__form .submit-button:hover{background: var(--sage-700) !important; border-color: var(--sage-700) !important; transform: translateY(-2px);}
.imp .form-card__form .powered-by{display: none !important;}
.imp .map-card{position: relative; min-height: 420px; overflow: hidden; border-radius: clamp(24px, 3vw, 36px); border: 1px solid var(--line); background: var(--sage-100);}
.imp .map-card iframe{position: absolute; inset: 0; width: 100%; height: 100%; border: 0; filter: grayscale(.55) contrast(1.02) sepia(.12);}
.imp .map-card__pin{position: absolute; left: 20px; right: 20px; bottom: 20px; display: flex; gap: 14px; align-items: center; padding: 16px 18px; border-radius: var(--radius); background: rgba(255, 255, 255, .96); box-shadow: var(--shadow); font-size: .92rem; line-height: 1.45; color: var(--ink);}
.imp .map-card__pin svg{width: 22px; height: 22px; color: var(--sage-700); flex: none;}
.imp .imp-footer{background: var(--sage-950); color: rgba(255, 255, 255, .66); padding-top: clamp(64px, 7vw, 100px); font-size: .96rem;}
.imp .footer-cta{display: grid; gap: 32px; align-items: center; padding-bottom: clamp(48px, 6vw, 80px); margin-bottom: clamp(48px, 6vw, 72px); border-bottom: 1px solid rgba(255, 255, 255, .1);}
@media (min-width: 960px){.imp .footer-cta{grid-template-columns: 1.4fr auto; gap: 64px;}}
.imp .footer-cta__text{margin: 0; max-width: 32ch; font-family: var(--font-serif); font-weight: 400; font-size: clamp(1.6rem, 1.2rem + 1.3vw, 2.4rem); line-height: 1.2; color: var(--white);}
.imp .footer-cta__actions{display: flex; flex-wrap: wrap; gap: 14px;}
@media (max-width: 480px){.imp .footer-cta__actions{flex-wrap: nowrap; gap: 8px;}
.imp .footer-cta__actions .btn{flex: 1 1 0; min-height: 44px; padding: 10px 12px; font-size: .78rem; gap: 6px; white-space: nowrap;}}
.imp .footer-grid{display: grid; gap: 48px; padding-bottom: 56px; border-bottom: 1px solid rgba(255, 255, 255, .1);}
@media (min-width: 720px){.imp .footer-grid{grid-template-columns: 1fr 1fr;}}
@media (min-width: 1080px){.imp .footer-grid{grid-template-columns: 1.3fr .8fr 1.2fr 1.1fr;}}
.imp .footer-brand img{width: 150px; filter: brightness(0) invert(1); opacity: .95; margin-bottom: 24px;}
.imp .footer-brand p{max-width: 340px; line-height: 1.7;}
.imp .imp-footer h2{font-family: var(--font-sans); font-size: .78rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--sage-300); margin-bottom: 22px;}
.imp .footer-links{list-style: none; display: grid; gap: 12px;}
.imp .footer-links a{text-decoration: none; transition: color .3s;}
.imp .footer-links a:hover{color: var(--white);}
.imp .footer-contact{list-style: none; display: grid; gap: 18px;}
.imp .footer-contact li{display: flex; gap: 14px; align-items: flex-start; line-height: 1.55;}
.imp .footer-contact svg{width: 20px; height: 20px; flex: none; margin-top: 3px; color: var(--sage-300);}
.imp .footer-contact a{text-decoration: none; word-break: break-word;}
.imp .footer-contact a:hover{color: var(--white);}
.imp .socials{display: flex; gap: 10px; margin-top: 28px;}
.imp .socials a{width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; border: 1px solid rgba(255, 255, 255, .18); color: var(--white); transition: background-color .3s, color .3s, border-color .3s, transform .3s var(--ease);}
.imp .socials a:hover{background: var(--beige-200); color: var(--sage-950); border-color: var(--beige-200); transform: translateY(-2px);}
.imp .socials svg{width: 18px; height: 18px;}
.imp .footer-bottom{display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; padding: 26px 0 34px; font-size: .88rem; color: rgba(255, 255, 255, .5);}
.imp .footer-bottom a{color: rgba(255, 255, 255, .7); text-decoration: none;}
.imp .footer-bottom a:hover{color: var(--white);}
.imp .mobile-cta{position: fixed; left: 10px; right: 10px; bottom: 10px; z-index: 80; display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding: 5px; border-radius: 999px; background: rgba(255, 255, 255, .94); backdrop-filter: blur(14px); box-shadow: 0 16px 40px -12px rgba(22, 33, 29, .4); transform: translateY(140%); transition: transform .5s var(--ease);}
.imp .mobile-cta.is-visible{transform: none;}
.imp .mobile-cta .btn{min-height: 42px; padding: 8px 12px; font-size: .82rem; gap: 8px;}
@media (min-width: 768px){.imp .mobile-cta{display: none;}}
@media (max-width: 767px){.imp .imp-footer{padding-bottom: 24px;}}
.js .imp .reveal{opacity: 0; transform: translateY(28px); transition: opacity .9s var(--ease), transform .9s var(--ease);}
.js .imp .reveal.is-in{opacity: 1; transform: none;}
.js .imp .reveal[data-delay="1"]{transition-delay: .08s;}
.js .imp .reveal[data-delay="2"]{transition-delay: .16s;}
.js .imp .reveal[data-delay="3"]{transition-delay: .24s;}
.js .imp .reveal[data-delay="4"]{transition-delay: .32s;}
.js .imp .reveal-img .frame__img{clip-path: inset(12% 12% 12% 12% round var(--radius-lg)); transition: clip-path 1.4s var(--ease);}
.js .imp .reveal-img.is-in .frame__img{clip-path: inset(0 0 0 0 round 0);}
.js .imp .frame--arch.reveal-img .frame__img{clip-path: inset(10% 10% 10% 10% round 999px 999px var(--radius-lg) var(--radius-lg));}
.js .imp .frame--arch.reveal-img.is-in .frame__img{clip-path: inset(0 0 0 0 round 0);}
.imp .hero-anim{animation: heroIn 1.1s var(--ease) both;}
.imp .hero-anim--1{animation-delay: .15s;}
.imp .hero-anim--2{animation-delay: .3s;}
.imp .hero-anim--3{animation-delay: .45s;}
.imp .hero-anim--4{animation-delay: .6s;}
@keyframes heroIn{from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; }}
@media (prefers-reduced-motion: reduce){.imp *,.imp *::before,.imp *::after{animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important;}
.js .imp .reveal{opacity: 1; transform: none;}
.js .imp .reveal-img .frame__img{clip-path: none;}}
.imp .grid-2 > *{min-width: 0;}
@media (max-width: 959px){.imp .frame__backdrop{inset: 6% 0 -4% 8%;}
.imp .frame__badge{left: 12px; right: 12px; bottom: 16px; max-width: none;}
.imp .cred-panel{padding: 24px 20px;}
.imp .reg{grid-template-columns: 76px 1fr; gap: 14px; padding: 12px;}
.imp .reg__logo{width: 76px;}}
@media (max-width: 640px){.imp .hero__tagline{border-radius: 14px; font-size: .68rem; letter-spacing: .06em; padding: 10px 14px; align-items: flex-start;}
.imp .hero__tagline .dot{margin-top: 4px;}
.imp .hero .btn-row .btn{flex: 1 1 100%;}}
@media (max-width: 767px){.imp .hero-card__services li{padding: 0;}
.imp .hero-card__services a{display: block; flex: 1; padding: 11px 0;}
.imp .link-arrow{min-height: 44px; padding-bottom: 0; background-position: 0 calc(100% - 10px);}
.imp .footer-links{gap: 0;}
.imp .footer-links a{display: inline-block; padding: 9px 0;}
.imp .footer-contact{gap: 6px;}
.imp .footer-contact a{display: inline-block; padding: 8px 0;}
.imp .socials a{width: 46px; height: 46px;}}
@media (max-width: 640px){.imp .hero__tagline{font-size: .74rem;}
.imp .u-hide-mobile{display: none;}}
@media (max-width: 520px){.imp .service-detail__aside{min-height: 0; gap: 28px; padding: 26px 24px;}
.imp .service-detail__aside h2{font-size: 1.7rem; overflow-wrap: anywhere; hyphens: auto;}
.imp .service-detail{padding: 18px; gap: 26px;}
.imp .service-detail__body{padding: 0 6px 10px;}}
@media (max-width: 520px){.imp .service-detail__body .btn,.imp .path-card .btn,.imp .cta-card .btn,.imp .hero .btn-row .btn{width: 100%; align-self: stretch; justify-content: space-between; text-align: left; padding: 14px 22px;}
.imp .hero .btn-row .btn:not(:has(svg)){justify-content: center; text-align: center;}}
/* ================= WordPress / Elementor integration ================= */
body{background:#fbf8f3}
.admin-bar .imp .imp-header{top:32px}
@media(max-width:782px){.admin-bar .imp .imp-header{top:46px}}

/* A container holding an IMP widget is full-bleed with no gaps: the widget draws the whole section. */
.e-con.imp-shell,.e-con:has(>.elementor-widget[class*="elementor-widget-imp_"]),.e-con:has(>.e-con-inner>.elementor-widget[class*="elementor-widget-imp_"]){--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;--gap:0px;--row-gap:0px;--column-gap:0px;--margin-top:0px;--margin-bottom:0px;--content-width:100%;padding:0!important;margin-top:0!important;margin-bottom:0!important;max-width:100%!important}
.e-con.imp-shell>.e-con-inner,.e-con:has(>.e-con-inner>.elementor-widget[class*="elementor-widget-imp_"])>.e-con-inner{padding:0!important;max-width:100%!important;gap:0!important}
.elementor-widget[class*="elementor-widget-imp_"]{width:100%!important;max-width:100%!important;margin:0!important}
.elementor-widget[class*="elementor-widget-imp_"]>.elementor-widget-container{margin:0;padding:0}
#masthead,#colophon{margin:0;padding:0;background:none;border:0}

/* Keep theme / kit typography from leaking in. */
.imp{font-family:var(--font-sans);font-size:1.0625rem;line-height:1.75;color:var(--ink);-webkit-font-smoothing:antialiased;overflow-x:clip}
.imp h1,.imp h2,.imp h3,.imp h4,.imp h5,.imp h6{font-family:var(--font-serif);text-transform:none}
.imp a{text-decoration:none}
.imp .btn,.imp .btn:hover,.imp .btn:focus{color:var(--btn-fg)}
.imp .link-arrow:hover{color:var(--sage-800)}
.imp .footer-links a:hover,.imp .footer-contact a:hover{color:#fff}
.imp .menu-toggle:hover,.imp .menu-toggle:focus{background:var(--sage-800);color:#fff}
.imp .service-detail{scroll-margin-top:90px}

/* In the Elementor editor, show everything immediately (no scroll reveals). */
.elementor-editor-active .imp .reveal,.elementor-editor-active .imp .reveal-img .frame__img{opacity:1!important;transform:none!important;clip-path:none!important}
.elementor-editor-active .imp .hero-anim{animation:none!important}
.elementor-editor-active .imp .imp-header{position:relative;top:auto!important}

/* Form plugin (MetForm) inside the contact form card. */
.imp .form-card h2{margin-bottom:28px}
.imp .form-card .mf-input-label{font-family:var(--font-sans)!important;font-size:.9rem!important;font-weight:700!important;color:#1f2326!important;margin-bottom:8px!important}
.imp .form-card .mf-input-required-indicator{color:#8f7552!important}
.imp .form-card .mf-input{width:100%!important;padding:16px 18px!important;font:500 1rem/1.5 "Manrope",system-ui,sans-serif!important;color:#1f2326!important;background:#fbf8f3!important;border:1px solid rgba(31,35,38,.14)!important;border-radius:14px!important;box-shadow:none!important;min-height:0!important;height:auto!important}
.imp .form-card textarea.mf-input{min-height:170px!important}
.imp .form-card .mf-input:focus{outline:none!important;background:#fff!important;border-color:#4f6d60!important;box-shadow:0 0 0 4px rgba(79,109,96,.15)!important}
.imp .form-card .mf-input-wrapper{margin-bottom:6px}
.imp .form-card .e-con{--padding-left:0px;--padding-right:0px}
.imp .form-card .metform-btn,.imp .form-card .mf-btn-wraper button{display:inline-flex!important;align-items:center;justify-content:center;gap:10px;min-height:54px!important;padding:14px 32px!important;font:600 .95rem/1.2 "Manrope",system-ui,sans-serif!important;color:#fff!important;background:#2a3d35!important;border:1px solid #2a3d35!important;border-radius:999px!important;box-shadow:none!important;transition:transform .35s cubic-bezier(.22,.61,.36,1),background-color .35s!important;cursor:pointer}
.imp .form-card .metform-btn:hover,.imp .form-card .mf-btn-wraper button:hover{background:#3b5549!important;border-color:#3b5549!important;transform:translateY(-2px)}
