/* Reference-led header and cinematic opening. */
.centered-header { background: #fff; }
.centered-header .header-inner { position: relative; height: 112px; justify-content: center; }
.centered-header .brand { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); z-index: 2; }
.centered-header #navigation { width: 100%; }
.centered-header .nav-list { display: grid; grid-template-columns: repeat(3,auto) 210px repeat(3,auto); align-items: center; justify-content: space-between; gap: 24px; }
.centered-header .nav-list > li:nth-child(4) { grid-column: 5; }
.centered-header .nav-list > li > a { font-size: 13px; text-transform: none; letter-spacing: .1px; font-weight: 600; position: relative; }
.centered-header .nav-list > li > a[aria-current]::after { content: ''; position: absolute; left: 0; right: 0; bottom: 13px; height: 2px; background: var(--sky); }
.centered-header.scrolled .header-inner { height: 94px; }
.hero.hero-video { position: relative; isolation: isolate; display: flex; justify-content: flex-start; align-items: center; padding: 80px max(50px, calc((100vw - 1200px) / 2)); min-height: 720px; min-height: min(850px,calc(100svh - 112px)); overflow: hidden; background: #16435a; }
.hero-backdrop { position: absolute; inset: 0; z-index: -1; background: url('../images/hero/pool.webp') center / cover; }
.hero-backdrop video { width: 100%; height: 100%; object-fit: cover; }
.hero-backdrop::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(3,18,30,.84) 0%, rgba(3,18,30,.72) 34%, rgba(3,18,30,.55) 64%, rgba(3,18,30,.45) 100%); }
.hero-video .hero-content { width: min(650px,100%); padding: 0; margin-left: 0; margin-right: auto; align-self: auto; text-align: left; color: #fff; }
.hero-experience { display: flex; align-items: center; gap: 14px; color: #c4f3fa; font-size: 12px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; margin-bottom: 26px; }
.hero-experience::before { content: ""; width: 36px; height: 2px; background: #89edfa; }
.hero-video h1 { font-size: clamp(56px,6.3vw,86px); line-height: 1.02; letter-spacing: -3px; margin: 0 0 26px; }
.hero-video h1 span { color: #89edfa; }
.hero-video .hero-lead { color: #ecf7ff; font-size: 20px; font-weight: 400; line-height: 1.6; margin: 0 0 27px; }
.hero-video .button-row { flex-direction: row; justify-content: flex-start; align-items: center; gap: 15px; }
.hero-video .button { min-height: 56px; padding: 15px 25px; border-radius: 40px; text-transform: none; font-size: 15px; letter-spacing: 0; color: #06364c; background: #89edfa; border: 1px solid #89edfa; }
.hero-video .button:hover { background: #bbf6ff; border-color: #bbf6ff; }
.hero-video .hero-outline { background: transparent; color: #fff; border: 2px solid #e2f7ff; }
.hero-video .hero-outline:hover { background: #ffffff1f; border-color: #fff; }
.video-toggle { display: inline-flex; align-items: center; justify-content: center; gap: 11px; background: transparent; color: #e2f3fb; border: 0; font-size: 12px; padding: 8px 0; margin-top: 24px; min-height: 44px; }
.video-toggle-icon { display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid #e2f3fb; border-radius: 50%; font-size: 12px; }
.hero-video :focus-visible { outline-color: #a4f4ff; }
@media(min-width:1600px) { .hero.hero-video { min-height: min(900px,calc(100svh - 112px)); } }
@media(max-width:1023px) {
 .centered-header .header-inner,.centered-header.scrolled .header-inner { height: 96px; justify-content: flex-end; }
 .centered-header #navigation { width: auto; }
 .centered-header .nav-list { display: block; }
 .centered-header .nav-list > li > a { font-size: 14px; }
 .hero.hero-video { min-height: 690px; padding: 72px 32px; }
}
@media(max-width:600px) {
 .centered-header .header-inner,.centered-header.scrolled .header-inner { height: 86px; }
 .hero.hero-video { min-height: min(740px, calc(100svh - 86px)); padding: 56px 26px; justify-content: center; }
 .hero-video .hero-content { padding: 0; max-width: 420px; }
 /* Favor the right side of the footage by shifting the mobile crop left. */
 .hero-backdrop video { object-position: 75% center; }
 .hero-backdrop { background-position: 75% center; }
 .hero-backdrop::after { background: linear-gradient(90deg,rgba(3,18,30,.82),rgba(3,18,30,.60)); }
 .hero-experience { font-size: 10px; line-height: 1.5; letter-spacing: 1.8px; margin-bottom: 22px; }
 .hero-video h1 { font-size: clamp(38px,11.5vw,58px); line-height: 1.08; font-weight: 700; letter-spacing: -1.6px; margin-bottom: 22px; text-wrap: balance; }
 .hero-video .hero-lead { max-width: 32ch; font-size: 15px; line-height: 1.75; font-weight: 400; letter-spacing: .1px; margin-bottom: 30px; text-wrap: pretty; color: #e4edf3; }
 .desktop-break { display: none; }
 .hero-video .button-row { width: min(100%, 340px); flex-direction: column; align-items: stretch; gap: 12px; }
 .hero-video .button { width: 100%; font-size: 13px; font-weight: 600; min-height: 52px; padding: 14px 20px; }
 .video-toggle { margin-top: 20px; font-size: 11px; letter-spacing: .2px; }
}

/* Desktop navigation: balanced groups around the original centered logo. */
@media (min-width: 1024px) {
 .centered-header { border-bottom: 1px solid #e3edf2; box-shadow: 0 3px 18px #082f4908; }
 .centered-header .header-inner { width: min(1240px, calc(100% - 72px)); }
 .centered-header .nav-list { grid-template-columns: repeat(3, minmax(0, 1fr)) 220px repeat(3, minmax(0, 1fr)); gap: 12px; justify-content: normal; }
 .centered-header .nav-list > li { justify-content: center; }
 .centered-header .nav-list > li > a { padding: 16px 8px; font-size: 15px; line-height: 1.4; font-weight: 600; letter-spacing: .15px; color: #294657; transition: color .2s, background .2s; }
 .centered-header .nav-list > li > a:hover,
 .centered-header .nav-list > li > a[aria-current] { color: #0284a8; }
 .centered-header .nav-list > li > a[aria-current]::after { left: 8px; right: 8px; bottom: 6px; border-radius: 2px; }
 .centered-header .dropdown-toggle { display: grid; place-items: center; padding: 0; width: 26px; height: 36px; color: #0284a8; }
 .centered-header .nav-list > li:last-child > a { padding: 12px 23px; border: 1px solid #badde7; border-radius: 999px; color: #076887; background: #f0fafd; }
 .centered-header .nav-list > li:last-child > a:hover { background: #dff4fa; }
 .centered-header .nav-list > li:last-child > a[aria-current]::after { display: none; }
 .centered-header .dropdown { top: calc(100% - 1px); left: 0; min-width: 265px; padding: 10px; border-radius: 12px; box-shadow: 0 14px 40px #082f491c; }
 .centered-header .dropdown a { padding: 12px; font-size: 14px; }
}
@media (min-width: 1024px) and (max-width: 1199px) {
 .centered-header .nav-list { grid-template-columns: repeat(3, minmax(0, 1fr)) 170px repeat(3, minmax(0, 1fr)); gap: 6px; }
 .centered-header .nav-list > li > a { font-size: 13px; padding-inline: 5px; }
 .centered-header .nav-list > li:last-child > a { padding-inline: 17px; }
}

/* Floating navigation — white, deep teal and a cyan active state. */
.nav-contact-arrow { display: none; }
@media (min-width: 1024px) {
 .centered-header { width: min(1440px, calc(100% - 48px)); margin: 20px auto 30px; top: 16px; border: 1px solid #c9e9ee; border-radius: 22px; background: #fff; box-shadow: 0 12px 40px #041e3320; }
 .home-page .centered-header { margin-bottom: -124px; }
 .centered-header .header-inner { width: calc(100% - 48px); height: 102px; }
 .centered-header.scrolled { box-shadow: 0 10px 35px #041e3330; }
 .centered-header.scrolled .header-inner { height: 88px; }
 .centered-header .brand { top: 0; transform: translateX(-50%); width: 176px; height: 132px; justify-content: center; align-items: center; background: white; border-radius: 0 0 80px 80px; border-bottom: 2px solid #b6ecf2; padding-bottom: 8px; transition: height .25s; }
 .centered-header.scrolled .brand { height: 143px; }
 .centered-header .nav-list { grid-template-columns: repeat(3,minmax(0,1fr)) 200px repeat(3,minmax(0,1fr)); gap: 10px; }
 .centered-header .nav-list > li > a { font-size: 15px; font-weight: 600; padding: 13px 18px; border-radius: 15px; }
 .centered-header .nav-list > li > a:hover { background: #edfafd; color: #005c75; }
 .centered-header .nav-list > li > a[aria-current] { background: #aaf3fb; color: #05495b; }
 .centered-header .nav-list > li > a[aria-current]::after { display: none; }
 .centered-header .nav-list > li:last-child > a { display: inline-flex; align-items: center; gap: 12px; padding: 13px 22px; border: 1px solid #075c76; border-radius: 16px; background: #075c76; color: #fff; box-shadow: 0 4px 12px #075c7615; }
 .centered-header .nav-list > li:last-child > a:hover { background: #08465a; }
 .nav-contact-arrow { display: inline; font-size: 20px; line-height: 1; }
.centered-header .dropdown { margin-top: 2px; border-color: #d3ebf0; }
.centered-header .dropdown-toggle { display: inline-grid; place-items: center; width: 24px; height: 34px; padding: 0; margin-left: -12px; color: #0b7895; background: transparent; border: 0; }
.centered-header .dropdown-toggle svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; transition: transform .2s ease; }
.centered-header .has-dropdown.open .dropdown-toggle svg { transform: rotate(180deg); }
 .home-page .hero.hero-video { min-height: min(960px,100svh); padding-top: 215px; padding-bottom: 75px; }
}
@media (min-width:1024px) and (max-width:1199px) {
 .centered-header .header-inner { width: calc(100% - 28px); }
 .centered-header .nav-list { grid-template-columns: repeat(3,minmax(0,1fr)) 155px repeat(3,minmax(0,1fr)); gap: 4px; }
 .centered-header .nav-list > li > a { font-size: 13px; padding-inline: 10px; }
 .centered-header .nav-list > li:last-child > a { padding-inline: 14px; gap: 6px; }
 .centered-header .brand { width: 152px; }
}
@media (max-width:1023px) {
 .centered-header { border-bottom: 1px solid #d9edf1; }
 .centered-header .menu-toggle { background: #eef9fb; border: 1px solid #d7eef2; border-radius: 12px; }
}
/* Shared panoramic banners for interior pages. */
.inner-hero.page-banner { position: relative; isolation: isolate; overflow: hidden; background: var(--deep); padding: 74px 0; min-height: 420px; display: flex; align-items: center; }
.page-banner::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(4,25,40,.92), rgba(4,25,40,.75) 48%, rgba(4,25,40,.22)); }
.inner-hero .page-banner-image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: center 55%; border-radius: 0; }
.page-banner-content { width: calc(100% - 80px); }
.page-banner-copy { max-width: 720px; }
.page-banner .breadcrumbs { margin-bottom: 24px; flex-wrap: wrap; gap: 10px; color: #d1e6ee; font-size: 12px; line-height: 1.5; }
.page-banner .breadcrumbs a { color: #89edfa; }
.page-banner h1 { color: #fff; font-size: clamp(36px, 4.5vw, 60px); line-height: 1.08; letter-spacing: -1.8px; margin: 0 0 20px; text-wrap: balance; }
.page-banner p { color: #e0edf3; max-width: 570px; font-size: 17px; line-height: 1.7; margin: 0 0 28px; }
.page-banner .button { background: #89edfa; color: #06364c; border-color: #89edfa; border-radius: 30px; text-transform: none; font-size: 14px; letter-spacing: 0; }
.page-banner .button:hover { background: #bbf6ff; border-color: #bbf6ff; }
.page-banner + .contact-layout { padding-top: 60px; }
#estimate-form { scroll-margin-top: 140px; }
@media (max-width: 767px) {
 .inner-hero.page-banner { padding: 45px 0; min-height: 390px; }
 .page-banner-content { width: calc(100% - 40px); }
 .page-banner::after { background: rgba(4,25,40,.76); }
 .page-banner h1 { font-size: 38px; letter-spacing: -1px; }
 .page-banner p { font-size: 15px; }
 .page-banner .breadcrumbs { font-size: 11px; }
 .page-banner + .contact-layout { padding-top: 40px; }
}
/* About: photographic story, navy service values and a soft closing panel. */
.about-story { background: #edf6f8; }
.about-story-layout { display: grid; grid-template-columns: .95fr 1.05fr; gap: 64px; align-items: center; }
.about-story-photo { margin: 0; position: relative; padding: 0 20px 24px 0; }
.about-story-photo > img { width: 100%; height: 560px; object-fit: cover; border-radius: 16px 16px 64px 16px; }
.about-story-photo figcaption { position: absolute; bottom: 0; right: 0; display: flex; align-items: center; gap: 18px; padding: 22px 28px; background: var(--navy); color: #fff; border: 6px solid #edf6f8; border-radius: 16px; }
.about-story-photo strong { font-size: 48px; line-height: 1; color: #89edfa; }
.about-story-photo span { font-size: 13px; line-height: 1.6; }
.about-story h2 { font-size: clamp(30px, 3.3vw, 44px); line-height: 1.15; }
.about-story p { color: #475569; font-size: 15px; line-height: 1.85; }
.about-story p:last-child { margin-bottom: 0; }
.about-values { background: var(--deep); color: #fff; }
.about-values article { border-top: 2px solid #69cede; padding: 28px 24px 0 0; }
.about-values h3 { color: #fff; font-size: 23px; margin-bottom: 16px; }
.about-values p { color: #bdd0dc; font-size: 15px; line-height: 1.85; margin-bottom: 0; }
.about-next { background: #edf6f8; }
.about-next-panel { background: #fff; border: 1px solid #d9e9ef; border-radius: 20px; padding: 48px 56px; box-shadow: 0 12px 40px #082f4906; }
.about-next-panel h2 { font-size: clamp(30px, 3.2vw, 42px); }
.about-next-panel p { max-width: 730px; color: #475569; line-height: 1.8; }
@media (max-width: 1023px) {
 .about-story-layout { grid-template-columns: 1fr; gap: 36px; }
 .about-story-photo > img { height: 420px; }
}
@media (max-width: 767px) {
 .about-story-photo { padding-right: 10px; }
 .about-story-photo > img { height: 350px; border-bottom-left-radius: 40px; }
 .about-story-photo figcaption { padding: 18px; gap: 14px; }
 .about-story-photo strong { font-size: 40px; }
 .about-story .eyebrow { font-size: 10px; letter-spacing: 1.3px; }
 .about-next-panel { padding: 30px 24px; }
 .about-values article { padding-top: 22px; }
}
/* About value cards enter in sequence; hover remains subtle and immediate. */
.about-values .about-value { position: relative; border-top: 0; padding: 28px 24px; border-radius: 12px; }
.about-value::before { content: ''; position: absolute; top: 0; left: 24px; right: 24px; height: 2px; background: #69cede; transform-origin: left; }
@media (prefers-reduced-motion: no-preference) {
 .motion-ready .about-value.reveal { transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1), background-color .25s ease; }
 .motion-ready .about-value.reveal:nth-child(2) { transition-delay: .13s, .13s, 0s; }
 .motion-ready .about-value.reveal:nth-child(3) { transition-delay: .26s, .26s, 0s; }
 .motion-ready .about-value.reveal::before { transform: scaleX(0); transition: transform .8s ease .2s; }
 .motion-ready .about-value.reveal.visible::before { transform: scaleX(1); }
 .motion-ready .about-value.reveal:nth-child(2)::before { transition-delay: .33s; }
 .motion-ready .about-value.reveal:nth-child(3)::before { transition-delay: .46s; }
 .about-value h3 { transition: color .25s ease, transform .25s ease; }
}
@media (hover: hover) {
 .about-values .about-value:hover { background-color: #ffffff07; }
 .about-value:hover h3 { color: #89edfa; }
}
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
 .about-value:hover h3 { transform: translateX(4px); }
}
/* Service detail layout inspired by the supplied editorial reference. */
.service-editorial { display: grid; grid-template-columns: minmax(0, 1fr) 290px; gap: 40px; align-items: start; max-width: 1180px; }
.service-main { min-width: 0; }
.service-feature-photo { margin: 0 0 28px; }
.service-feature-photo img { width: 100%; height: 390px; border-radius: 8px; box-shadow: 0 10px 28px #082f4910; }
.service-editorial .service-editorial-title { font-size: clamp(28px, 3vw, 39px); line-height: 1.15; margin-bottom: 18px; letter-spacing: -1px; }
.service-main > p { color: #526474; font-size: 17px; line-height: 1.85; }
.service-main > p.service-editorial-lead { font-size: 19px; line-height: 1.7; color: #334e60; }
.service-highlights { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 24px; list-style: none; padding: 8px 0 22px; margin: 0; }
.service-highlights li { display: flex; align-items: flex-start; gap: 10px; font-size: 13px; line-height: 1.6; }
.service-highlights svg { width: 20px; height: 20px; color: #087a99; }
.service-details-heading { font-size: 23px; margin: 12px 0 22px; }
.service-detail-list { margin-top: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.service-detail-list article { padding-top: 16px; }
.service-detail-list h3 { font-size: 17px; margin-bottom: 10px; }
.service-detail-list p { font-size: 15px; line-height: 1.8; }
.service-detail-list .detail-number { display: none; }
.service-detail-list .text-link { font-size: 13px; }
.service-sidebar { position: sticky; top: 145px; }
.service-side-nav { background: #fff; border: 1px solid var(--border); border-radius: 8px; overflow: hidden; box-shadow: 0 8px 28px #082f4908; }
.service-side-nav h2 { margin: 0; padding: 22px; font-size: 21px; letter-spacing: -.5px; }
.service-side-nav a { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 17px 20px; border-top: 1px solid var(--border); font-size: 13px; line-height: 1.5; transition: background .2s, color .2s; }
.service-side-nav a svg { width: 16px; height: 16px; color: #0b9bb8; }
.service-side-nav a[aria-current="page"] { background: var(--deep); color: white; font-weight: 600; }
.service-side-nav a:hover { background: #e8f6fa; color: var(--navy); }
.service-contact-card { margin-top: 24px; position: relative; isolation: isolate; overflow: hidden; border-radius: 8px; background: var(--deep); color: white; padding: 32px 24px; }
.service-contact-card > img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.service-contact-card::before { content: ''; position: absolute; inset: 0; z-index: -1; background: #071e2ee6; }
.service-contact-card span { font-size: 9px; letter-spacing: 1.4px; color: #a8e5ef; }
.service-contact-card h3 { font-size: 23px; line-height: 1.3; color: #fff; margin: 16px 0; }
.service-contact-card a { display: block; font-size: 22px; font-weight: 700; }
.service-contact-card .service-contact-link { display: flex; gap: 10px; align-items: center; font-size: 12px; font-weight: 500; margin-top: 22px; color: #a8e5ef; }
.service-contact-link svg { width: 17px; }
.faq-page-intro { background: #edf6f8; }
.faq-page-heading { max-width: 760px; margin-inline: auto; text-align: center; }
.faq-page-heading h2 { font-size: clamp(30px, 3.6vw, 46px); margin: 18px 0; }
.faq-page-heading p { color: #526474; font-size: 17px; line-height: 1.8; max-width: 680px; margin-inline: auto; }
.faq-page-intro + .section { padding-top: 70px; }
.faq-page-cta { background: #edf6f8; }
.faq-page-cta-panel { background: var(--deep); color: white; text-align: center; border-radius: 18px; padding: 50px 24px; }
.faq-page-cta-panel h2 { color: white; font-size: clamp(30px, 3vw, 42px); margin: 16px 0 10px; }
.faq-page-cta-panel p { color: #c4d8e1; font-size: 16px; margin: 0 auto 24px; }
.faq-page-cta-panel .button { background: #89edfa; color: #06364c; border-color: #89edfa; border-radius: 30px; text-transform: none; letter-spacing: 0; }
.contact-layout { max-width: 1180px; padding: 70px 40px 90px; background: #edf6f8; border-radius: 22px; gap: 52px; }
.contact-layout aside { background: var(--deep); color: #fff; border-radius: 16px; padding: 34px 30px; }
.contact-layout aside h2 { color: #fff; font-size: 32px; margin-bottom: 12px; }
.contact-layout aside > p { color: #c4d8e1; font-size: 16px; line-height: 1.75; }
.contact-layout .contact-detail { border-bottom-color: #ffffff26; }
.contact-layout .contact-detail small { color: #89edfa; }
.contact-layout .contact-detail a, .contact-layout .contact-detail > span { color: #fff; }
.contact-layout .contact-detail p { color: #c4d8e1; }
.estimate-panel { background: #fff; border: 1px solid #d9e9ef; box-shadow: 0 12px 34px #082f4912; padding: 42px; border-radius: 16px; }
.estimate-panel h2 { font-size: 32px; margin-bottom: 10px; }
.estimate-panel > p { color: #64748b; font-size: 16px; margin-bottom: 24px; }
.estimate-panel form > label { font-size: 13px; color: #294657; }
.estimate-panel button[disabled] { cursor: wait; opacity: .72; transform: none; box-shadow: none; }
.estimate-panel .form-notice { border: 1px solid #b9e4ec; border-left: 4px solid #0ea5e9; border-radius: 9px; background: #edfafd; color: #16435a; }
.estimate-panel .form-notice.error { border-color: #efc8c1; border-left-color: #b64a31; background: #fff4f2; color: #713629; }
@media (max-width: 767px) {
 .contact-layout { padding: 44px 20px 60px; border-radius: 0; }
 .contact-layout aside, .estimate-panel { padding: 28px 22px; border-radius: 14px; }
 .estimate-panel h2 { font-size: 28px; }
}
.faq-page-list { background: radial-gradient(circle at 100% 0%, #0c6076 0, transparent 38%), linear-gradient(135deg, #041e30, #082f49) !important; border-radius: 18px; padding: 68px 56px; box-shadow: 0 12px 36px #082f4930; }
.faq-page-list h2 { color: #fff; }
.faq-page-list > div:first-child p { color: #c4d8e1; }
.faq-layout > div:first-child > p { max-width: 420px; line-height: 1.8; }
.faq-layout > div:first-child .button { margin-top: 10px; }
.faq-page-list > div:first-child { padding-right: 28px; }
.faq-page-list > div:first-child p { color: #fcfcfc; font-size: 16px; line-height: 1.8; }
.faq-page-list .faq-list { display: grid; gap: 10px; }
.faq-page-list .faq-item { border: 1px solid #dbeaf0; border-radius: 10px; background: #f8fcfd; overflow: hidden; transition: border-color .2s, box-shadow .2s, background .2s; }
.faq-page-list .faq-item:hover { border-color: #9ddae6; background: #fff; box-shadow: 0 5px 16px #082f490b; }
.faq-page-list .faq-toggle { padding: 19px 20px; color: var(--navy); font-size: 15px; }
.faq-page-list .faq-toggle { cursor: pointer; transition: background-color .25s ease, color .25s ease, padding-left .25s ease; }
.faq-page-list .faq-toggle:hover { background: #e9f8fa; color: #075c76; padding-left: 24px; }
.faq-page-list .faq-toggle:focus-visible { outline: 3px solid #89edfa; outline-offset: -3px; }
.faq-page-list .faq-toggle span { position: relative; display: block; flex: 0 0 34px; width: 34px; height: 34px; border: 1px solid #9bdce6; border-radius: 50%; background: #f4fcfd; color: transparent; font-size: 0; transition: transform .3s ease, background-color .3s ease, border-color .3s ease; }
.faq-page-list .faq-toggle span::before, .faq-page-list .faq-toggle span::after { content: ''; position: absolute; top: 50%; left: 50%; width: 12px; height: 1.5px; border-radius: 2px; background: #087a99; transform: translate(-50%, -50%); }
.faq-page-list .faq-toggle span::after { transform: translate(-50%, -50%) rotate(90deg); }
.faq-page-list .faq-answer { padding: 0 20px; }
.faq-page-list .faq-answer p { color: #526474; font-size: 14px; line-height: 1.75; }
.faq-page-list .faq-answer { display: block; max-height: 0; overflow: hidden; padding-top: 0; padding-bottom: 0; opacity: 0; transition: max-height .42s cubic-bezier(.2,.7,.2,1), opacity .28s ease, padding .32s ease; }
.faq-page-list .faq-answer.is-open { opacity: 1; padding-top: 2px; padding-bottom: 3px; }
.faq-page-list .faq-toggle span { transition: transform .3s ease, background-color .3s ease; }
.faq-page-list .faq-toggle[aria-expanded="true"] span { transform: rotate(45deg); background: #bdebf1; border-color: #69cede; }
@media (prefers-reduced-motion: reduce) {
 .faq-page-list .faq-answer, .faq-page-list .faq-toggle span { transition: none; }
}
@media (max-width: 767px) {
 .faq-page-list { padding: 44px 20px; border-radius: 14px; }
 .faq-page-list > div:first-child { padding-right: 0; }
 .faq-page-list .faq-toggle { padding: 16px; font-size: 14px; }
}
@media(max-width:1023px) {
 .service-editorial { grid-template-columns: minmax(0, 1fr) 250px; gap: 26px; }
 .service-feature-photo img { height: 320px; }
 .service-detail-list { grid-template-columns: 1fr; }
}
@media(max-width:767px) {
 .service-editorial { grid-template-columns: 1fr; gap: 36px; }
 .service-sidebar { position: static; }
 .service-feature-photo img { height: 270px; }
 .service-highlights { gap: 14px; }
}
