:root {
  color-scheme: light;
  --paper: #f7f7f2;
  --surface: #fffefa;
  --ink: #1c2924;
  --muted: #68746d;
  --line: #e3e5dc;
  --green: #245b83;
  --green-dark: #194565;
  --lime: #b9deee;
  --lavender: #e9e9df;
  --sans: "Inter", "Segoe UI", sans-serif;
  font-family: var(--sans);
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  scroll-behavior: smooth;
  scroll-padding-top: 88px;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-size: 15px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }

.container { width: min(1180px, calc(100% - 64px)); margin-inline: auto; }
.site-header { position: sticky; z-index: 20; top: 0; background: rgb(247 247 242 / 94%); backdrop-filter: blur(14px); border-bottom: 1px solid rgb(28 41 36 / 8%); }
.header-inner { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.brand { display: inline-flex; align-items: center; gap: 10px; font-size: 21px; font-weight: 750; letter-spacing: -.07em; }
.brand-mark { width: 31px; height: 31px; display: grid; place-items: center; background: var(--lime); border-radius: 50%; }
.brand-mark img { width: 17px; height: 17px; }
.brand-period { color: #4f83a8; }
.site-nav { display: flex; align-items: center; gap: clamp(18px, 3vw, 37px); color: #556159; font-size: 13px; font-weight: 550; }
.site-nav a:hover, .text-link:hover, .back-to-top:hover { color: var(--green); }
.nav-login { padding: 9px 17px; color: #435665; background: transparent; border: 1px solid #aebcc6; border-radius: 999px; cursor: not-allowed; font-size: 12px; font-weight: 600; opacity: .8; }
.menu-toggle { display: none; }

.hero { position: relative; overflow: hidden; padding: 78px 0 24px; }
.hero-grid { display: grid; grid-template-columns: .92fr 1.08fr; align-items: center; gap: 60px; }
.hero-copy { padding: 5px 0 24px; }
.eyebrow { margin: 0 0 20px; color: #698399; font-size: 10px; font-weight: 750; letter-spacing: .16em; line-height: 1.5; text-transform: uppercase; }
.eyebrow-dot { display: inline-block; width: 7px; height: 7px; margin: 0 8px 1px 0; background: #5d8eb0; border-radius: 50%; }
h1, h2, h3, p { margin-top: 0; }
h1, h2 { font-weight: 600; letter-spacing: -.065em; }
h1 { max-width: 540px; margin-bottom: 22px; font-size: clamp(55px, 6.6vw, 82px); line-height: .99; }
h1 em, h2 em { color: var(--green); font-style: normal; font-weight: 700; }
.hero-intro { max-width: 420px; margin-bottom: 28px; color: var(--muted); font-size: 16px; line-height: 1.8; }
.button { min-height: 49px; display: inline-flex; align-items: center; justify-content: center; gap: 19px; padding: 0 22px; border: 0; border-radius: 999px; cursor: pointer; font-size: 12px; font-weight: 650; transition: background .2s ease, transform .2s ease; }
.button:hover { transform: translateY(-1px); }
.button img { width: 15px; height: 15px; }
.button-dark { color: white; background: var(--green); }
.button-dark img { filter: brightness(0) invert(1); }
.text-link { color: #59645d; font-size: 12px; font-weight: 600; transition: color .2s ease; }
.text-link span { padding-left: 5px; color: #7d8c6a; }
.hero-proof { display: flex; align-items: center; gap: 10px; margin-top: 47px; color: #69756e; font-size: 11px; }
.proof-icon { width: 28px; height: 28px; display: grid; place-items: center; background: #e5eef3; border-radius: 50%; }
.proof-icon img { width: 14px; height: 14px; }
.hero-visual { position: relative; min-width: 0; padding: 0 28px 27px 0; }
.photo-placeholder { position: relative; display: grid; place-items: center; overflow: hidden; background: #e8e8dc; }
.hero-photo { min-height: 445px; background: linear-gradient(145deg, #dce5d2 0%, #e8e1d3 55%, #cbd6c3 100%); border-radius: 18px 100px 18px 18px; }
.placeholder-content { display: flex; align-items: center; flex-direction: column; gap: 12px; color: #647d8e; font-size: 11px; letter-spacing: .03em; }
.placeholder-icon { width: 58px; height: 58px; display: grid; place-items: center; background: rgb(255 254 250 / 65%); border-radius: 50%; }
.placeholder-icon img { width: 25px; height: 25px; opacity: .7; }
.hero-note { position: absolute; right: 0; bottom: 0; display: flex; align-items: center; gap: 12px; min-width: 230px; padding: 16px 19px; background: var(--surface); border: 1px solid rgb(28 41 36 / 7%); border-radius: 12px; box-shadow: 0 12px 35px rgb(34 44 36 / 10%); }
.note-icon { width: 35px; height: 35px; display: grid; place-items: center; background: #e9f2f6; border-radius: 50%; }
.note-icon img { width: 17px; height: 17px; }
.hero-note strong, .hero-note small { display: block; }
.hero-note strong { font-size: 11px; }
.hero-note small { margin-top: 2px; color: var(--muted); font-size: 10px; }
.hero-stamp { position: absolute; top: 27px; right: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 90px; height: 90px; color: var(--green); background: var(--lime); border-radius: 50%; transform: rotate(9deg); }
.hero-stamp span { font-size: 8px; font-weight: 700; letter-spacing: .13em; }
.hero-stamp strong { font-size: 15px; font-weight: 700; letter-spacing: -.04em; }
.hero-bottom { display: flex; align-items: center; gap: 17px; margin-top: 54px; color: #758078; font-size: 9px; font-weight: 650; letter-spacing: .11em; text-transform: uppercase; }
.hero-bottom-line { width: 42px; height: 1px; background: #b4c6cf; }

.section { padding: 108px 0; }
.services-section { background: var(--surface); }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 50px; margin-bottom: 46px; }
h2 { margin-bottom: 0; font-size: clamp(39px, 4.3vw, 56px); line-height: 1.06; }
.section-heading .eyebrow { margin-bottom: 14px; }
.section-intro { max-width: 390px; margin: 0 0 5px; color: var(--muted); font-size: 13px; line-height: 1.85; }
.service-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.service-card { min-width: 0; padding: 9px 9px 17px; background: var(--surface); border: 1px solid #eeefe9; border-radius: 14px; transition: transform .2s ease, box-shadow .2s ease; }
.service-card:hover { transform: translateY(-3px); box-shadow: 0 12px 30px rgb(34 44 36 / 7%); }
.service-photo { min-height: 205px; grid-template-rows: 1fr; border-radius: 9px; }
.service-featured .service-photo { min-height: 205px; }
.photo-wash { background: linear-gradient(135deg, #d9e3d3, #e8e4d7 70%, #cbd8c8); }
.photo-press { background: linear-gradient(135deg, #e7ddd0, #e9e9df 70%, #d7ddce); }
.photo-home { background: linear-gradient(135deg, #e4e6d9, #d6dfd1 68%, #e8dfd3); }
.photo-business { background: linear-gradient(135deg, #dedfd3, #e8e3d8 68%, #d3ded5); }
.photo-label { position: absolute; bottom: 14px; left: 16px; color: #647d8e; font-size: 9px; letter-spacing: .06em; text-transform: uppercase; }
.service-copy { display: flex; flex-direction: column; gap: 7px; padding: 16px 7px 0; }
.card-kicker { margin-bottom: 5px; color: #70899a; font-size: 8px; font-weight: 750; letter-spacing: .12em; }
.service-copy h3 { margin-bottom: 0; font-size: 17px; font-weight: 600; letter-spacing: -.03em; }
.service-copy > p { max-width: 290px; margin: 0; color: var(--muted); font-size: 11px; line-height: 1.75; }
.section-footnote { display: flex; align-items: center; gap: 9px; margin: 37px 0 0; color: #758078; font-size: 10px; }
.section-footnote img { width: 15px; height: 15px; }

.process-section { padding: 96px 0; color: #f6f7f1; background: var(--green); }
.process-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: 100px; align-items: center; }
.eyebrow-light { color: #b9deee; }
.process-intro h2 { margin: 0 0 17px; }
.process-intro h2 em, .booking-copy h2 em { color: #b9deee; }
.process-intro > p:not(.eyebrow) { max-width: 300px; margin-bottom: 24px; color: #d0dbd2; font-size: 12px; }
.button-light { color: var(--green-dark); background: #f3f4ed; }
.button-light:hover { background: var(--lime); }
.process-steps { border-top: 1px solid rgb(255 255 255 / 22%); }
.process-step { display: grid; grid-template-columns: 39px 1fr 22px; align-items: center; gap: 15px; min-height: 82px; border-bottom: 1px solid rgb(255 255 255 / 22%); }
.process-step > span { align-self: start; padding-top: 27px; color: #b9deee; font-size: 9px; letter-spacing: .08em; }
.process-step h3 { margin: 0 0 2px; font-size: 14px; font-weight: 550; }
.process-step p { margin: 0; color: #cfdbd1; font-size: 10px; }
.process-step > img { width: 17px; height: 17px; filter: brightness(0) invert(1); opacity: .8; }

.pricing-section { background: var(--paper); }
.pricing-layout { display: grid; grid-template-columns: .85fr 1.15fr; align-items: center; gap: 110px; }
.pricing-copy .eyebrow { margin-bottom: 14px; }
.pricing-copy > p:not(.eyebrow) { max-width: 340px; margin: 20px 0 24px; color: var(--muted); font-size: 12px; line-height: 1.85; }
.price-note { display: flex; align-items: center; gap: 9px; color: #647d8e; font-size: 10px; }
.price-note img { width: 15px; height: 15px; }
.price-card { padding: 27px 30px 21px; background: var(--surface); border: 1px solid var(--line); box-shadow: 0 14px 40px rgb(34 44 36 / 4%); }
.price-card-heading { display: flex; justify-content: space-between; padding-bottom: 13px; color: #849078; border-bottom: 1px solid var(--line); font-size: 8px; font-weight: 750; letter-spacing: .13em; }
.price-row { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; padding: 13px 0; border-bottom: 1px solid #eeefe9; font-size: 12px; }
.price-row small { padding-left: 5px; color: #929a91; font-size: 9px; }
.price-row strong { color: var(--green); font-size: 13px; font-weight: 700; }
.price-link { display: flex; justify-content: space-between; padding: 17px 0 7px; color: var(--green); font-size: 10px; font-weight: 700; }
.price-disclaimer { margin: 15px 0 0; color: #8a9389; font-size: 9px; line-height: 1.65; }

.areas-section { padding: 81px 0; background: #eeefe7; }
.areas-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: 95px; align-items: start; }
.areas-layout .eyebrow { margin-bottom: 14px; }
.areas-content > p { max-width: 450px; margin: 3px 0 22px; color: var(--muted); font-size: 12px; line-height: 1.8; }
.area-list { display: flex; flex-wrap: wrap; gap: 8px; }
.area-list span { padding: 7px 12px; color: #4c5c50; background: rgb(255 254 250 / 75%); border: 1px solid #dfe2d7; border-radius: 2px; font-size: 9px; }

.kind-words { background: #f3f6f8; }
.testimonial-layout { display: grid; grid-template-columns: .8fr 1.2fr; align-items: center; gap: clamp(45px, 8vw, 105px); }
.testimonial-heading { max-width: 390px; margin: 0; text-align: left; }
.testimonial-heading .eyebrow { margin-bottom: 14px; }
.testimonial-heading h2 { font-size: clamp(35px, 4vw, 48px); }
.testimonial-heading > p:not(.eyebrow) { margin: 16px 0 24px; color: var(--muted); font-size: 12px; line-height: 1.8; }
.testimonial-heading .testimonial-note { margin: 15px 0 0; color: #78868e; font-size: 9px; line-height: 1.6; }
.testimonial-cta { min-height: 43px; display: inline-flex; align-items: center; justify-content: center; padding: 0 19px; color: #fff; background: var(--green); border-radius: 999px; font-size: 11px; font-weight: 650; transition: background .2s ease, transform .2s ease; }
.testimonial-cta:hover { background: var(--green-dark); transform: translateY(-1px); }
.testimonial-grid { display: grid; gap: 13px; }
.testimonial-card { position: relative; min-width: 0; min-height: 100px; display: flex; align-items: center; gap: 15px; margin: 0; padding: 15px 48px 15px 17px; background: var(--surface); border: 1px solid #e6eaed; border-left: 4px solid #dfe5e9; border-radius: 8px; box-shadow: 0 5px 18px rgb(34 57 73 / 4%); }
.testimonial-highlight { background: #eaf2f7; border-color: #d8e5ee; border-left-color: var(--green); box-shadow: 0 9px 24px rgb(36 91 131 / 8%); }
.customer-avatar { width: 52px; height: 52px; flex: 0 0 auto; object-fit: cover; border: 2px solid #fff; border-radius: 50%; box-shadow: 0 2px 8px rgb(28 41 36 / 12%); }
.testimonial-copy { min-width: 0; }
.testimonial-author strong, .testimonial-author small { display: block; }
.testimonial-author strong { margin-bottom: 3px; color: var(--ink); font-size: 11px; font-weight: 700; }
.testimonial-author small { color: #71808a; font-size: 9px; }
.testimonial-card blockquote { margin: 4px 0 0; color: #53626b; font-size: 10px; line-height: 1.55; }
.quote-icon { position: absolute; top: 15px; right: 15px; width: 17px; height: 17px; opacity: .4; filter: invert(32%) sepia(17%) saturate(1557%) hue-rotate(162deg) brightness(91%) contrast(88%); }
.testimonial-highlight .quote-icon { opacity: .85; }

.booking-section { padding: 93px 0; color: #f6f7f1; background: var(--green); }
.booking-layout { display: grid; grid-template-columns: 1fr .85fr; align-items: start; gap: 100px; }
.booking-copy { padding-top: 15px; }
.booking-copy .eyebrow { margin-bottom: 15px; }
.booking-copy h2 { margin-bottom: 18px; }
.booking-copy > p:not(.eyebrow):not(.contact-note) { max-width: 360px; margin-bottom: 28px; color: #d0dbd2; font-size: 12px; }
.contact-details { display: grid; gap: 12px; }
.contact-details a, .contact-details > span { display: flex; align-items: center; gap: 10px; color: #f1f3eb; font-size: 11px; }
.contact-details img { width: 15px; height: 15px; filter: brightness(0) invert(1); opacity: .8; }
.contact-note { max-width: 345px; margin: 23px 0 0; color: #bdcbbf; font-size: 9px; }
.booking-form { display: grid; padding: 28px; color: var(--ink); background: var(--surface); }
.form-heading { display: flex; justify-content: space-between; margin-bottom: 21px; padding-bottom: 13px; border-bottom: 1px solid var(--line); color: #647d8e; font-size: 8px; font-weight: 750; letter-spacing: .12em; }
.form-step { color: #a0a79d; }
.booking-form label { margin: 13px 0 6px; font-size: 10px; font-weight: 650; }
.booking-form label span { color: #919990; font-weight: 400; }
.booking-form input, .booking-form select, .booking-form textarea { width: 100%; min-height: 42px; padding: 10px 12px; color: var(--ink); background: #fbfbf8; border: 1px solid #e1e4dc; border-radius: 2px; font-size: 10px; }
.booking-form textarea { min-height: 75px; resize: vertical; }
.booking-form input::placeholder, .booking-form textarea::placeholder { color: #a0a79e; }
.booking-form input:focus, .booking-form select:focus, .booking-form textarea:focus { outline: 2px solid #aebf8e; outline-offset: 1px; }
.form-submit { width: 100%; margin-top: 20px; }
.form-footnote { margin: 10px 0 0; color: #899188; font-size: 8px; text-align: center; }

.site-footer { padding: 36px 0 0; background: #f0f1eb; }
.footer-main { display: grid; grid-template-columns: 1fr 1.2fr 1.1fr auto; align-items: start; gap: 32px; padding-bottom: 31px; }
.footer-brand { align-self: start; }
.footer-main > p { margin: 3px 0 0; color: #758078; font-size: 9px; line-height: 1.8; }
.footer-hours { display: grid; gap: 5px; color: #778177; font-size: 8px; letter-spacing: .06em; }
.footer-hours span { display: flex; justify-content: space-between; gap: 10px; }
.footer-hours strong { color: #46564b; font-weight: 600; letter-spacing: 0; }
.back-to-top { color: #526250; font-size: 9px; transition: color .2s ease; }
.footer-bottom { display: flex; justify-content: space-between; padding-block: 15px; border-top: 1px solid #dfe2d9; color: #858e84; font-size: 8px; }

:focus-visible { outline: 2px solid #72934d; outline-offset: 4px; }

@media (min-width: 1400px) {
  .hero { padding-top: 95px; }
  .hero-photo { min-height: 495px; }
}

@media (max-width: 850px) {
  .container { width: min(100% - 44px, 680px); }
  .header-inner { min-height: 70px; }
  .menu-toggle { width: 42px; height: 42px; display: grid; place-items: center; padding: 0; background: transparent; border: 1px solid var(--line); border-radius: 3px; cursor: pointer; }
  .menu-toggle img { width: 19px; height: 19px; }
  .site-nav { position: absolute; top: calc(100% - 1px); right: 0; left: 0; display: none; align-items: stretch; flex-direction: column; gap: 0; padding: 8px 22px 18px; background: var(--paper); border-bottom: 1px solid var(--line); }
  .site-nav.open { display: flex; }
  .site-nav > a { padding: 11px 0; border-bottom: 1px solid var(--line); }
  .site-nav > .nav-login { align-self: flex-start; margin-top: 14px; }
  .hero { padding-top: 54px; }
  .hero-grid { grid-template-columns: 1fr 1fr; gap: 30px; }
  .hero-photo { min-height: 370px; }
  .service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero-stamp { width: 76px; height: 76px; }
  .process-layout, .pricing-layout, .areas-layout, .booking-layout { gap: 48px; }
  .footer-main { grid-template-columns: 1fr 1fr; row-gap: 22px; }
}

@media (max-width: 600px) {
  :root { scroll-padding-top: 72px; }
  .container { width: calc(100% - 40px); }
  .header-inner { min-height: 66px; }
  .hero { padding: 46px 0 18px; }
  .hero-grid { grid-template-columns: 1fr; gap: 34px; }
  .hero-copy { padding-bottom: 0; }
  h1 { max-width: 440px; font-size: clamp(54px, 15vw, 74px); }
  .hero-intro { max-width: 390px; font-size: 14px; }
  .hero-proof { margin-top: 27px; }
  .hero-visual { margin-right: 4px; padding-right: 16px; }
  .hero-photo { min-height: 320px; border-top-right-radius: 78px; }
  .hero-stamp { top: 15px; right: -3px; width: 69px; height: 69px; }
  .hero-note { min-width: 205px; padding: 12px 14px; }
  .hero-bottom { margin-top: 43px; gap: 10px; font-size: 7px; letter-spacing: .07em; }
  .hero-bottom-line { width: 22px; }
  .section { padding: 76px 0; }
  .section-heading { display: block; margin-bottom: 30px; }
  .section-intro { max-width: 420px; margin-top: 18px; }
  .service-grid { grid-template-columns: 1fr; gap: 16px; }
  .service-photo, .service-featured .service-photo { min-height: 230px; }
  .process-section { padding: 73px 0; }
  .process-layout, .pricing-layout, .areas-layout, .booking-layout { grid-template-columns: 1fr; gap: 36px; }
  .process-intro > p:not(.eyebrow) { max-width: 360px; }
  .process-step { min-height: 76px; }
  .price-card { padding: 22px 18px 17px; }
  .areas-section { padding: 67px 0; }
  .testimonial-layout { grid-template-columns: 1fr; gap: 30px; }
  .testimonial-heading { max-width: 480px; }
  .testimonial-grid { gap: 10px; }
  .testimonial-card { min-height: 94px; padding: 13px 40px 13px 13px; }
  .customer-avatar { width: 46px; height: 46px; }
  .booking-section { padding: 72px 0; }
  .booking-copy { padding-top: 0; }
  .booking-form { padding: 23px 18px; }
  .footer-main { grid-template-columns: 1fr 1fr; gap: 21px 14px; }
  .footer-hours { grid-column: 1 / -1; max-width: 240px; }
  .back-to-top { justify-self: end; align-self: center; }
  .footer-bottom { gap: 12px; font-size: 7px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

.scroll-progress { position: fixed; z-index: 31; top: 0; right: 0; left: 0; height: 2px; pointer-events: none; }
.scroll-progress span { display: block; width: 100%; height: 100%; background: #b9deee; transform: scaleX(0); transform-origin: left center; }
.site-header { transition: box-shadow .25s ease, background .25s ease; }
.site-header.is-scrolled { background: rgb(247 247 242 / 97%); box-shadow: 0 7px 25px rgb(28 41 36 / 7%); }
.site-nav a { position: relative; padding-block: 9px; transition: color .2s ease; }
.site-nav a[aria-current="location"] { color: var(--green); }
.site-nav a[aria-current="location"]::after { position: absolute; right: 0; bottom: 1px; left: 0; height: 2px; content: ""; background: var(--green); border-radius: 2px; }
.brand[aria-current="location"] .brand-mark { outline: 2px solid rgb(36 91 131 / 32%); outline-offset: 3px; }

.hero { min-height: min(760px, calc(100svh - 78px)); display: flex; flex-direction: column; justify-content: space-between; padding: 0; color: #fff; background: #173b56; }
.hero-media { position: absolute; inset: 0; overflow: hidden; }
.hero-video { width: 100%; height: 100%; object-fit: cover; object-position: center 45%; }
.hero-image-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgb(17 31 43 / 82%) 0%, rgb(17 31 43 / 65%) 39%, rgb(17 31 43 / 20%) 73%, rgb(17 31 43 / 15%) 100%), linear-gradient(0deg, rgb(17 31 43 / 48%), transparent 32%); }
.hero-grid { position: relative; z-index: 1; width: min(1180px, calc(100% - 64px)); flex: 1 0 auto; display: flex; align-items: center; padding-block: 60px 28px; }
.hero-copy { max-width: 650px; padding: 0; animation: hero-copy-in .85s .12s both cubic-bezier(.16, 1, .3, 1); }
.hero .eyebrow { color: #d8eaf2; }
.hero .eyebrow-dot { background: #b9deee; }
.hero h1 { max-width: 670px; margin-bottom: 23px; font-size: clamp(68px, 9.5vw, 124px); font-weight: 600; line-height: .91; letter-spacing: -.085em; }
.hero h1 em { color: #b9deee; }
.hero-intro { max-width: 435px; margin-bottom: 29px; color: rgb(255 255 255 / 84%); font-size: 15px; line-height: 1.8; }
.pickup-widget { width: min(100%, 480px); min-height: 76px; display: grid; grid-template-columns: 116px minmax(0, 1fr) 48px; align-items: center; gap: 16px; padding: 10px 12px 10px 20px; color: var(--ink); background: rgb(255 255 255 / 96%); border: 1px solid rgb(255 255 255 / 65%); border-radius: 999px; box-shadow: 0 18px 50px rgb(0 0 0 / 16%); }
.pickup-time, .pickup-address { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.pickup-label { color: #7a858d; font-size: 11px; font-weight: 550; line-height: 1.4; }
.pickup-period { color: #1d2b35; font-size: 15px; font-weight: 650; }
.pickup-address { padding-left: 16px; border-left: 1px solid #e6e9eb; cursor: text; }
.pickup-address input { width: 100%; min-width: 0; padding: 0; color: #1d2b35; background: transparent; border: 0; outline: 0; font-size: 14px; font-weight: 600; }
.pickup-address input::placeholder { color: #8b969d; font-weight: 500; opacity: 1; }
.pickup-address:focus-within { outline: 2px solid #97c5dc; outline-offset: 7px; border-radius: 2px; }
.pickup-submit { width: 46px; height: 46px; display: grid; place-items: center; padding: 0; background: var(--green); border: 0; border-radius: 50%; cursor: pointer; transition: background .2s ease, transform .2s ease; }
.pickup-submit:hover { background: var(--green-dark); transform: translateX(2px); }
.pickup-submit img { width: 20px; height: 20px; filter: brightness(0) invert(1); }
.logo-showcase { z-index: 1; width: 100%; overflow: hidden; padding: 17px 0 28px; color: #fff; background: transparent; }
.logo-marquee { position: relative; overflow: hidden; }
.logo-marquee { -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.logo-track { width: max-content; display: flex; animation: logo-marquee 38s linear infinite; }
.logo-marquee:hover .logo-track { animation-play-state: paused; }
.logo-set { display: flex; flex: 0 0 auto; align-items: center; justify-content: space-around; gap: clamp(40px, 7vw, 92px); min-width: max(100vw, 1060px); padding: 5px clamp(35px, 5vw, 75px); }
.business-logo { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 10px; color: rgb(255 255 255 / 88%); font-size: 13px; font-weight: 650; letter-spacing: -.025em; white-space: nowrap; }
.business-logo img { width: 28px; height: 28px; object-fit: contain; opacity: .88; }

.service-card { overflow: hidden; }
.service-photo { position: relative; overflow: hidden; background: #e5e8df; }
.service-photo > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .65s cubic-bezier(.2, .7, .2, 1); }
.service-card:hover .service-photo > img { transform: scale(1.045); }
.service-photo::after { position: absolute; inset: 45% 0 0; content: ""; pointer-events: none; background: linear-gradient(0deg, rgb(17 30 23 / 16%), transparent); }
.service-card .service-copy { min-height: 122px; }

.care-section { padding: 106px 0; background: var(--paper); }
.care-layout { display: grid; grid-template-columns: .92fr 1.08fr; align-items: center; gap: clamp(50px, 8vw, 105px); }
.care-image { position: relative; min-height: 535px; overflow: hidden; background: #dfe4db; border-radius: 5px 100px 5px 5px; }
.care-image > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 52% center; }
.care-image-label { position: absolute; right: 17px; bottom: 17px; display: flex; align-items: center; gap: 9px; padding: 11px 14px; color: var(--ink); background: var(--surface); border-radius: 5px; box-shadow: 0 8px 26px rgb(28 41 36 / 10%); font-size: 9px; font-weight: 600; }
.care-image-label img { width: 15px; height: 15px; }
.care-copy .eyebrow { margin-bottom: 14px; }
.care-copy h2 { font-size: clamp(38px, 4vw, 53px); }
.care-intro { max-width: 480px; margin: 20px 0 24px; color: var(--muted); font-size: 12px; line-height: 1.9; }
.care-points { border-top: 1px solid var(--line); }
.care-points article { display: grid; grid-template-columns: 35px 1fr; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--line); }
.care-points article > span { padding-top: 2px; color: #70899a; font-size: 9px; font-weight: 650; }
.care-points h3 { margin: 0 0 3px; font-size: 12px; font-weight: 650; }
.care-points p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.65; }
.care-link { display: inline-flex; align-items: center; gap: 14px; margin-top: 20px; color: var(--green); font-size: 11px; font-weight: 700; }
.care-link span { transition: transform .2s ease; }
.care-link:hover span { transform: translate(3px, -3px); }

.faq-section { padding: 96px 0; background: #f0f1eb; }
.faq-layout { display: grid; grid-template-columns: .78fr 1.22fr; gap: 90px; align-items: start; }
.faq-intro .eyebrow { margin-bottom: 14px; }
.faq-intro h2 { margin-bottom: 14px; }
.faq-intro > p:not(.eyebrow) { max-width: 300px; margin-bottom: 17px; color: var(--muted); font-size: 11px; line-height: 1.8; }
.faq-intro .text-link { color: var(--green); }
.faq-list { border-top: 1px solid #d9ddd3; }
.faq-item { border-bottom: 1px solid #d9ddd3; }
.faq-item summary { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 19px 0; cursor: pointer; list-style: none; font-size: 12px; font-weight: 600; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { width: 21px; height: 21px; flex: 0 0 auto; display: grid; place-items: center; content: "+"; color: var(--green); border: 1px solid #cdd4c6; border-radius: 50%; font-size: 15px; font-weight: 400; transition: transform .2s ease, background .2s ease; }
.faq-item[open] summary::after { background: #d8eaf2; transform: rotate(45deg); }
.faq-item > p { max-width: 600px; margin: -4px 35px 18px 0; color: var(--muted); font-size: 10px; line-height: 1.8; }

.floating-book { position: fixed; z-index: 19; right: 23px; bottom: 22px; display: inline-flex; align-items: center; gap: 9px; padding: 13px 18px; color: #fff; background: var(--green); border: 1px solid rgb(255 255 255 / 20%); border-radius: 999px; box-shadow: 0 8px 26px rgb(25 55 78 / 25%); font-size: 11px; font-weight: 650; opacity: 0; pointer-events: none; transform: translateY(10px); transition: opacity .25s ease, transform .25s ease, background .2s ease; }
.floating-book img { width: 16px; height: 16px; filter: brightness(0) invert(1); }
.floating-book:hover { background: var(--green-dark); }
.floating-book.is-visible { opacity: 1; pointer-events: auto; transform: translateY(0); }

.scroll-effects .reveal { opacity: 0; transform: translateY(22px); transition: opacity .65s ease, transform .65s cubic-bezier(.2, .7, .2, 1); }
.scroll-effects .reveal.is-visible { opacity: 1; transform: translateY(0); }
.scroll-effects .service-card:nth-child(2), .scroll-effects .process-step:nth-child(2), .scroll-effects .testimonial-card:nth-child(2) { transition-delay: .08s; }
.scroll-effects .service-card:nth-child(3), .scroll-effects .process-step:nth-child(3), .scroll-effects .testimonial-card:nth-child(3) { transition-delay: .16s; }
.scroll-effects .service-card:nth-child(4), .scroll-effects .process-step:nth-child(4) { transition-delay: .08s; }
.scroll-effects .service-card:nth-child(5) { transition-delay: .16s; }
.scroll-effects .service-card:nth-child(6) { transition-delay: .24s; }

@keyframes hero-copy-in {
  from { opacity: 0; transform: translateY(22px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 850px) {
  .hero { min-height: min(790px, calc(100svh - 70px)); padding: 0; }
  .hero-grid { width: min(100% - 44px, 680px); }
  .hero-image-shade { background: linear-gradient(90deg, rgb(17 31 43 / 78%), rgb(17 31 43 / 37%)), linear-gradient(0deg, rgb(17 31 43 / 52%), transparent 38%); }
  .logo-set { min-width: max(100vw, 900px); }
  .care-layout { grid-template-columns: .85fr 1.15fr; gap: 35px; }
  .care-image { min-height: 500px; }
  .faq-layout { gap: 50px; }
}

@media (max-width: 600px) {
  .hero { min-height: max(690px, calc(100svh - 66px)); padding: 0; }
  .hero-grid { width: calc(100% - 40px); padding-block: 70px 45px; }
  .hero h1 { font-size: clamp(65px, 17vw, 88px); }
  .hero-intro { max-width: 360px; font-size: 13px; }
  .hero-video { object-position: 56% center; }
  .hero-image-shade { background: linear-gradient(90deg, rgb(17 31 43 / 76%) 0%, rgb(17 31 43 / 43%) 100%), linear-gradient(0deg, rgb(17 31 43 / 64%), transparent 50%); }
  .logo-showcase { padding: 12px 0 21px; }
  .pickup-widget { min-height: 68px; grid-template-columns: 82px minmax(0, 1fr) 40px; gap: 10px; padding: 8px 9px 8px 14px; border-radius: 999px; }
  .pickup-address { padding-left: 10px; }
  .pickup-label { font-size: 10px; }
  .pickup-period, .pickup-address input { font-size: 12px; }
  .pickup-submit { width: 40px; height: 40px; }
  .business-logo { font-size: 11px; }
  .business-logo img { width: 24px; height: 24px; }
  .care-section { padding: 74px 0; }
  .care-layout { grid-template-columns: 1fr; gap: 32px; }
  .care-image { min-height: 380px; border-top-right-radius: 75px; }
  .care-copy h2 { font-size: 41px; }
  .faq-section { padding: 72px 0; }
  .faq-layout { grid-template-columns: 1fr; gap: 26px; }
  .faq-intro h2 { font-size: 42px; }
  .floating-book { right: 14px; bottom: 14px; padding: 12px 15px; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-copy { animation: none; }
  .logo-track { animation: none; }
  .scroll-effects .reveal { opacity: 1; transform: none; transition: none; }
}

@keyframes logo-marquee {
  to { transform: translateX(-50%); }
}