/* Greatness homepage: shared typography, distinct section compositions, native controls. */
html { scroll-padding-top:124px; }
body { background:var(--canvas); }
body.modal-open { overflow:hidden; }
button { padding:0; }
button:focus-visible,a:focus-visible,summary:focus-visible { outline:3px solid var(--brand); outline-offset:5px; }
[hidden] { display:none!important; }
.icon { width:24px; height:24px; flex-shrink:0; }
.icon-sprite { position:absolute; width:0; height:0; overflow:hidden; }
.gm-shell { width:min(calc(100% - var(--gutter)*2),var(--container)); margin-inline:auto; }
.gm-eyebrow { display:block; font-size:var(--type-meta); font-weight:600; letter-spacing:.075em; line-height:1.55; }
.gm-eyebrow:has(.gm-eyebrow-icon),.step-title>.eyebrow:has(.gm-eyebrow-icon) { display:flex; align-items:center; gap:10px; }
.gm-eyebrow-icon { width:20px; height:20px; }
.gm-button { display:inline-flex; justify-content:center; align-items:center; gap:20px; min-height:56px; padding:16px 24px; border:1px solid transparent; border-radius:10px; background:var(--brand); color:white; font-size:16px; font-weight:600; line-height:1.45; text-align:center; transition:background .2s,box-shadow .25s; }
.gm-button .icon { width:21px; height:21px; transition:transform .25s var(--motion); }
.gm-button:hover { background:#245f0d; box-shadow:0 7px 20px rgb(46 121 16 / 12%); }
.gm-button:hover .icon { transform:translate(2px,-2px); }
.gm-button-small { min-height:48px; padding:12px 18px; gap:12px; font-size:15px; }
.gm-button-white { background:#fff; color:var(--forest); }
.gm-button-white:hover { background:#eef4e8; }
.gm-text-link { display:inline-flex; align-items:center; gap:14px; width:fit-content; min-height:48px; font-size:16px; font-weight:600; position:relative; line-height:1.45; }
.gm-text-link::after { content:''; position:absolute; left:0; bottom:7px; right:34px; height:1px; background:currentColor; transform:scaleX(0); transform-origin:left; transition:transform .3s var(--motion); }
.gm-text-link:hover::after { transform:scaleX(1); }
.gm-text-link .icon { width:20px; height:20px; }
.gm-icon-button { width:48px; height:48px; display:inline-flex; justify-content:center; align-items:center; border:1px solid var(--line); border-radius:50%; background:var(--surface); color:var(--forest); }

/* Navigation: a legible brand and language controls at every width. */
.gm-header { position:sticky; top:0; z-index:25; background:rgb(250 251 246 / 97%); border-bottom:1px solid var(--line); backdrop-filter:blur(14px); }
.gm-header.is-scrolled { box-shadow:0 6px 22px rgb(23 60 35 / 5%); }
.gm-nav { min-height:100px; display:flex; align-items:center; justify-content:space-between; gap:22px; }
.gm-brand { display:inline-flex; align-items:center; gap:12px; flex-shrink:0; max-width:100%; }
.gm-logo-crop { display:block; width:48px; height:51px; flex:0 0 48px; overflow:hidden; border-radius:50%; background:white; position:relative; }
.gm-logo-crop img { position:absolute; width:105px; max-width:none; height:105px; left:-28px; top:-19px; }
.gm-wordmark { display:grid; justify-items:start; gap:7px; text-align:left; font-size:26px; line-height:1.08; letter-spacing:-.035em; min-width:0; }
.gm-wordmark>.gm-brand-name { display:block; font:inherit; line-height:1.08; white-space:nowrap; }
.gm-wordmark>.gm-brand-tagline { display:block; font-size:14px; letter-spacing:0; line-height:1.35; color:var(--muted); font-weight:400; }
.gm-desktop-nav { display:flex; align-items:center; gap:24px; margin-left:auto; }
.gm-desktop-nav a { font-size:15px; position:relative; padding:14px 0; white-space:nowrap; }
.gm-desktop-nav a::after { content:''; position:absolute; left:0; right:0; bottom:7px; height:1px; background:var(--brand); transform:scaleX(0); transform-origin:left; transition:transform .25s; }
.gm-desktop-nav a:hover::after,.gm-desktop-nav a[aria-current='location']::after { transform:scaleX(1); }
.gm-nav-actions { display:flex; align-items:center; gap:12px; flex-shrink:0; }
.gm-menu-trigger { display:none; }
.gm-language-switch { display:flex; align-items:center; gap:3px; flex-shrink:0; padding:4px; border:1px solid var(--line); border-radius:10px; background:var(--surface); }
.gm-language-switch [data-language] { display:inline-flex; align-items:center; justify-content:center; min-height:40px; padding:8px 11px; border-radius:7px; font-family:'Greatness Sans','Greatness CJK',sans-serif; font-size:14px; font-weight:600; line-height:1.35; color:var(--muted); transition:background .2s,color .2s; }
.gm-language-switch [data-language]:hover { background:var(--soft); color:var(--forest); }
.gm-language-switch [data-language][aria-current='page'] { background:var(--forest); color:white; }
.gm-language-switch [data-language]:focus-visible { outline-offset:1px; }
.gm-mobile-menu { color:var(--forest); }
.gm-mobile-menu .gm-button { width:100%; margin-top:20px; }
.gm-mobile-menu .gm-menu-icon { display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; flex:0 0 40px; border-radius:50%; background:var(--soft); }
.gm-mobile-menu .gm-menu-icon .icon { width:20px; height:20px; }

/* Hero: a strong typographic statement paired with a single editorial photograph. */
.gm-hero { display:grid; grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr); gap:64px; padding-block:52px 64px; align-items:center; }
.gm-hero-copy { min-width:0; padding-block:16px; }
.gm-hero-eyebrow { display:flex; gap:12px; align-items:center; margin-bottom:32px; font-family:var(--sans); font-style:normal; font-weight:600; letter-spacing:.055em; }
.gm-hero-eyebrow i { display:block; flex:0 0 7px; width:7px; height:7px; border-radius:50%; background:var(--brand); box-shadow:0 0 0 5px var(--soft); }
.gm-hero h1 { font-size:clamp(64px,7.3vw,112px); letter-spacing:-.055em; line-height:1.02; margin-bottom:28px; }
.gm-heading-line { display:block; overflow:hidden; padding-bottom:.09em; margin-bottom:-.03em; padding-inline:.07em; margin-inline:-.07em; }
.gm-heading-line>span,.gm-heading-line>em { display:block; animation:gm-title-in .75s var(--motion) both; }
.gm-heading-line+.gm-heading-line>em { animation-delay:.08s; }
.gm-hero h1 em { color:var(--brand); font-size:1.045em; letter-spacing:-.045em; }
.gm-hero-description { font-size:var(--type-lead); line-height:1.65; max-width:470px; }
.gm-hero-actions { display:flex; gap:28px; align-items:center; flex-wrap:wrap; margin-top:32px; }
.gm-hero-caption { display:flex; align-items:center; gap:15px; margin-top:38px; max-width:470px; font-size:14px; line-height:1.55; color:var(--muted); }
.gm-caption-line { width:38px; height:1px; background:#8b9b84; }
.gm-hero-caption .icon { margin-left:auto; color:var(--brand); width:24px; height:24px; }
.gm-hero-visual { min-width:0; }
.gm-hero-photo { position:relative; overflow:hidden; border-radius:22px 22px 100px 22px; height:560px; background:var(--soft); }
.gm-hero-photo>img { width:100%; height:100%; object-fit:cover; object-position:70% center; transform:scale(1.025); animation:gm-photo-in 1s var(--motion) both; }
.gm-hero-photo::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgb(10 30 15 / 34%),transparent 30%,transparent 55%,rgb(10 30 15 / 54%)); pointer-events:none; }
.gm-image-label { position:absolute; inset:25px 28px auto; display:flex; justify-content:space-between; gap:16px; z-index:1; font-size:14px; letter-spacing:.01em; line-height:1.5; color:#fff; }
.gm-image-label>span:last-child { display:flex; align-items:center; gap:8px; }
.gm-label-icon { width:16px; height:16px; }
.gm-photo-caption { position:absolute; left:30px; right:44px; bottom:32px; z-index:1; display:flex; justify-content:space-between; align-items:end; gap:18px; color:#fff; }
.gm-photo-caption>span { font-size:32px; line-height:1.13; letter-spacing:-.035em; }
.gm-photo-caption em { color:white; letter-spacing:-.025em; }
.gm-price-pill { display:grid; grid-template-columns:1fr 20px; gap:3px 14px; padding:14px 18px; background:#fff; border-radius:12px; color:var(--forest); }
.gm-price-pill>span { font-size:14px; color:var(--muted); line-height:1.4; }
.gm-price-pill>strong { font-size:20px; grid-column:1; line-height:1.35; }
.gm-price-pill>.icon { grid-column:2; grid-row:1 / span 2; align-self:center; width:20px; height:20px; }
.gm-place-note { display:flex; align-items:start; flex-wrap:wrap; gap:6px 10px; margin-top:18px; font-size:14px; line-height:1.55; color:var(--muted); }
.gm-place-note>.icon { color:var(--brand); width:18px; height:18px; margin-top:2px; }
.gm-place-note>span:last-child { margin-left:auto; }
.gm-facts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-block:1px solid var(--line); padding-block:30px; }
.gm-facts>div { display:flex; align-items:start; gap:14px; padding-inline:24px; border-left:1px solid var(--line); }
.gm-facts>div:first-child { padding-left:0; border-left:0; }
.gm-facts>div:last-child { padding-right:0; }
.gm-facts>div>.icon { color:var(--brand); width:26px; height:26px; margin-top:2px; }
.gm-facts>div>span,.gm-promise-list>div>div,.gm-footer-identity { min-width:0; }
.gm-facts strong { display:block; font-size:17px; font-weight:600; line-height:1.4; }
.gm-facts small { display:block; font-size:14px; line-height:1.6; color:var(--muted); margin-top:7px; }

/* Services: larger image surfaces and a filter toolbar, without nested card frames. */
.gm-section { padding-block:104px; }
.gm-section-head { display:flex; align-items:end; justify-content:space-between; gap:64px; margin-bottom:40px; }
.gm-section-head .gm-eyebrow { margin-bottom:24px; }
.gm-section-head h2,.gm-area-layout h2,.gm-faq-layout h2,.gm-pricing h2,.gm-guide h2 { font-size:var(--type-h2); line-height:1.08; letter-spacing:-.045em; }
.gm-section-head>p { max-width:380px; font-size:18px; line-height:1.7; padding-bottom:4px; }
.gm-catalog-controls { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px; padding-block:20px; border-block:1px solid var(--line); margin-bottom:32px; }
.gm-filter-list { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.gm-filter-list button { min-height:46px; padding:10px 18px; font-size:15px; line-height:1.45; border:1px solid transparent; border-radius:999px; color:var(--muted); transition:background .2s,color .2s; }
.gm-filter-list button.is-active { background:var(--forest); color:white; }
.gm-filter-list button:not(.is-active):hover { background:var(--soft); color:var(--forest); }
.gm-service-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px 32px; }
.gm-service { position:relative; min-width:0; }
.gm-service-open { display:block; width:100%; text-align:left; font:inherit; }
.gm-service-open::after { content:''; position:absolute; inset:0; z-index:1; border-radius:14px; }
.gm-service:focus-within { outline:3px solid var(--brand); outline-offset:6px; border-radius:14px; }
.gm-service-open:focus-visible { outline:none; }
.gm-service-photo { position:relative; aspect-ratio:1.7; border-radius:16px; overflow:hidden; background:var(--soft); }
.gm-service-photo>img { width:100%; height:100%; object-fit:cover; transition:transform .65s var(--motion); }
.gm-service:hover .gm-service-photo>img { transform:scale(1.035); }
.gm-service-tag { position:absolute; top:18px; left:18px; font-size:14px; line-height:1.35; border-radius:999px; padding:8px 13px; background:#fff; color:var(--forest); }
.gm-service-arrow { position:absolute; right:20px; bottom:20px; width:50px; height:50px; display:flex; align-items:center; justify-content:center; border-radius:50%; background:#fff; transition:transform .25s,background .25s,color .25s; }
.gm-service-arrow>.icon { width:22px; height:22px; }
.gm-service:hover .gm-service-arrow { transform:rotate(45deg); background:var(--brand); color:white; }
.gm-service-info { padding-top:22px; }
.gm-service-info>span { display:block; font-size:14px; line-height:1.5; letter-spacing:.05em; text-transform:uppercase; color:var(--brand); margin-bottom:10px; }
.gm-service-info h3 { font-size:30px; line-height:1.22; letter-spacing:-.03em; }
.gm-service-info p { font-size:17px; line-height:1.7; margin-top:12px; max-width:54ch; }
.gm-services-foot { border-top:1px solid var(--line); margin-top:34px; padding-top:20px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:14px 24px; color:var(--muted); font-size:14px; line-height:1.55; }
.gm-services-foot>span:last-child { display:flex; align-items:center; gap:10px; }
.gm-services-foot .icon { width:18px; height:18px; }
.gm-services-foot>a { text-decoration:underline; text-underline-offset:4px; }
.gm-service.is-filtering { animation:gm-card-in .3s var(--motion) both; }

/* Brand story: one dark feature panel rather than another repeated service grid. */
.gm-story { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:56px; padding:40px; background:var(--forest); border-radius:24px; color:white; align-items:stretch; }
.gm-story-photo { position:relative; min-height:570px; height:100%; border-radius:16px; overflow:hidden; }
.gm-story-photo>img { width:100%; height:100%; object-fit:cover; object-position:60% center; }
.gm-story-photo::after { content:''; position:absolute; inset:55% 0 0; background:linear-gradient(transparent,rgb(10 30 15 / 55%)); }
.gm-story-photo-label { position:absolute; z-index:1; bottom:28px; left:26px; color:white; font-size:14px; letter-spacing:.035em; line-height:1.8; }
.gm-story-photo-label em { font-size:34px; letter-spacing:-.03em; color:white; }
.gm-story-copy { min-width:0; align-self:center; padding:14px 12px 14px 0; }
.gm-story-copy h2 { font-size:clamp(40px,3.8vw,56px); line-height:1.1; letter-spacing:-.04em; }
.gm-story-copy h2>.gm-eyebrow { color:#d0e5c3; margin-bottom:24px; }
.gm-story-copy h2 em { color:#d0e5c3; }
.gm-story-copy>p { color:#dfebd9; font-size:17px; line-height:1.75; margin-top:24px; max-width:52ch; }
.gm-promise-list { margin:30px 0 16px; }
.gm-promise-list>div { display:flex; gap:18px; padding-block:20px; border-top:1px solid rgb(255 255 255 / 20%); }
.gm-promise-list .icon { color:#d0e5c3; width:24px; height:24px; margin-top:3px; }
.gm-promise-list h3 { font-size:20px; letter-spacing:-.01em; line-height:1.4; }
.gm-promise-list p { color:#dfebd9; font-size:16px; line-height:1.65; margin-top:7px; max-width:50ch; }
.gm-story-copy .gm-text-link { color:#fff; }
.gm-story-copy :focus-visible { outline-color:#d0e5c3; }

/* Duration comparison: typographic numerals, a shared horizontal panel, clear notes. */
.gm-pricing { border-bottom:1px solid var(--line); }
.gm-pricing-intro { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:14px 80px; align-items:start; }
.gm-pricing-intro h2 { grid-row:1 / span 2; }
.gm-pricing .gm-eyebrow,.gm-guide .gm-eyebrow { margin-bottom:24px; }
.gm-pricing-intro>p { font-size:18px; line-height:1.7; max-width:56ch; padding-top:45px; }
.gm-pricing-intro>.gm-text-link { grid-column:2; }
.gm-duration-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:44px; border-top:1px solid var(--line); }
.gm-duration-list article { padding:32px 28px 34px; border-right:1px solid var(--line); background:var(--soft); }
.gm-duration-list article:first-child { border-radius:16px 0 0 16px; }
.gm-duration-list article:nth-child(2) { background:#e6eddf; }
.gm-duration-list article:nth-child(3) { border-right:0; border-radius:0 16px 16px 0; }
.gm-duration-list h3 { display:flex; align-items:baseline; flex-wrap:wrap; gap:12px; font-size:18px; line-height:1.2; letter-spacing:-.01em; }
.gm-duration-value { font-size:68px; line-height:1.1; letter-spacing:-.06em; font-variant-numeric:lining-nums tabular-nums; color:var(--forest); }
.gm-duration-list article>p { font-size:16px; line-height:1.65; max-width:28ch; margin-top:16px; }
.gm-pricing-note { grid-column:1 / -1; margin-top:22px; font-size:14px; line-height:1.7; max-width:80ch; }

/* Reservation process: a connected sequence with readable step numbers. */
.gm-process-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px; margin-top:44px; counter-reset:gm-step; }
.gm-process-grid article { position:relative; padding-top:28px; border-top:1px solid #a8bba0; counter-increment:gm-step; min-width:0; }
.gm-process-grid article>div { display:flex; align-items:center; gap:16px; margin-bottom:28px; }
.gm-step-index { font-size:48px; line-height:1; letter-spacing:-.045em; color:#7b9070; }
.gm-step-index::before { content:counter(gm-step,decimal-leading-zero); }
.gm-process-grid .gm-process-icon { margin-left:auto; width:56px; height:56px; display:flex; align-items:center; justify-content:center; flex:0 0 56px; background:var(--soft); border:1px solid var(--line); border-radius:16px; }
.gm-process-grid .gm-process-icon .icon { width:28px; height:28px; color:var(--brand); }
.gm-process-grid article>div>.icon { width:20px; height:20px; color:#708566; }
.gm-process-grid h3 { font-size:27px; line-height:1.3; letter-spacing:-.025em; }
.gm-process-grid p { font-size:17px; line-height:1.75; margin-top:14px; max-width:36ch; }

/* Coverage and FAQ retain native details/summary; HTML owns the initial closed state. */
.gm-area-section { background:#edf2e7; padding-block:96px; border-block:1px solid var(--line); }
.gm-area-layout { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:88px; align-items:start; }
.gm-area-layout .gm-eyebrow { margin-bottom:24px; }
.gm-area-layout>div>p { font-size:18px; line-height:1.7; max-width:38ch; margin-top:24px; }
.gm-area-layout .gm-text-link { margin-top:20px; }
.gm-area-note { display:flex; gap:12px; align-items:start; margin-top:28px; font-size:14px; color:var(--muted); line-height:1.65; }
.gm-area-note .icon { color:var(--brand); width:21px; height:21px; margin-top:2px; }
.gm-area-list { background:var(--surface); border:1px solid #d5dfce; border-radius:20px; padding:8px 26px 24px; }
.gm-area-group { border-bottom:1px solid var(--line); }
.gm-area-group summary { display:flex; justify-content:space-between; gap:16px; align-items:center; padding-block:24px; cursor:pointer; list-style:none; min-height:84px; }
.gm-area-group summary::-webkit-details-marker { display:none; }
.gm-area-group summary>span { display:flex; gap:12px; align-items:center; font-size:23px; line-height:1.35; letter-spacing:-.025em; min-width:0; }
.gm-area-group summary>span:last-child { font-size:14px; line-height:1.4; color:var(--muted); letter-spacing:0; gap:18px; flex-shrink:0; }
.gm-area-group summary .icon { width:22px; height:22px; color:var(--brand); }
.gm-area-group summary>span:last-child .icon { width:32px; height:32px; padding:6px; border:1px solid var(--line); border-radius:50%; transition:transform .2s,background .2s; }
.gm-area-group[open] summary>span:last-child .icon { transform:rotate(45deg); background:var(--soft); }
.gm-area-group summary:hover>span:first-child { color:var(--brand); }
.gm-area-pills { display:flex; gap:10px; flex-wrap:wrap; padding-bottom:26px; }
.gm-area-pills button { display:inline-flex; align-items:center; gap:14px; min-height:46px; padding:10px 14px; background:var(--canvas); border:1px solid var(--line); font-size:15px; line-height:1.5; text-align:left; border-radius:8px; transition:background .2s,border-color .2s; }
.gm-area-pills button:hover { background:var(--soft); border-color:#9cb08f; }
.gm-area-pills .icon { width:16px; height:16px; }
.gm-area-list>.gm-small { font-size:14px; line-height:1.7; margin-top:20px; }
.gm-guide { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); align-items:start; gap:88px; border-bottom:1px solid var(--line); }
.gm-guide-intro>p { margin-top:24px; max-width:40ch; font-size:18px; line-height:1.75; }
.gm-guide-intro>.gm-text-link { margin-top:20px; }
.gm-guide-content article { padding-top:28px; border-top:1px solid var(--line); }
.gm-guide-content article+article { margin-top:32px; }
.gm-guide-content h3 { font-size:28px; line-height:1.3; letter-spacing:-.025em; }
.gm-guide-content p,.gm-guide-content li { font-size:17px; line-height:1.75; }
.gm-guide-content p { margin-top:18px; }
.gm-guide-content ul { margin:18px 0 0; padding-left:22px; color:var(--muted); }
.gm-guide-content li+li { margin-top:12px; }
.gm-guide-content .gm-text-link { margin-top:16px; }
.gm-faq-layout { display:grid; grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr); gap:88px; align-items:start; }
.gm-faq-layout .gm-eyebrow { margin-bottom:24px; }
.gm-faq-layout>div>p { max-width:36ch; font-size:18px; line-height:1.7; margin-top:24px; }
.gm-faq-item { border-bottom:1px solid var(--line); margin:0; }
.gm-faq-item:first-child { border-top:1px solid var(--line); }
.gm-faq-item summary { display:flex; justify-content:space-between; align-items:center; gap:24px; padding-block:26px; font-size:20px; font-weight:600; line-height:1.5; list-style:none; min-height:88px; cursor:pointer; }
.gm-faq-item summary>span { min-width:0; }
.gm-faq-item summary .icon { width:32px; height:32px; flex:0 0 32px; padding:6px; border:1px solid var(--line); border-radius:50%; color:var(--brand); transition:transform .2s,background .2s; }
.gm-faq-item summary:hover { color:var(--brand); }
.gm-faq-item[open] summary .icon { transform:rotate(45deg); background:var(--soft); }
.gm-faq-item>div { padding:0 56px 28px 0; }
.gm-faq-item>div>p { font-size:17px; line-height:1.8; padding:0; max-width:62ch; }

/* One final booking panel, followed by a single contact footer. */
.gm-final-cta { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:80px; align-items:center; padding:60px; background:var(--forest); border-radius:24px; color:white; }
.gm-final-cta .gm-eyebrow { color:#d0e5c3; margin-bottom:28px; }
.gm-final-cta h2 { font-size:clamp(42px,4.8vw,70px); line-height:1.08; letter-spacing:-.045em; }
.gm-final-cta h2 em { color:#d0e5c3; }
.gm-final-cta p { font-size:18px; line-height:1.6; margin-top:25px; color:#dfebd9; }
.gm-final-cta>div:last-child { display:flex; flex-direction:column; align-items:start; gap:16px; min-width:0; }
.gm-cta-rule { display:block; height:1px; background:rgb(255 255 255 / 32%); width:100%; margin-bottom:16px; }
.gm-final-cta .gm-text-link { color:white; }
.gm-final-cta small { font-size:15px; line-height:1.6; color:#dfebd9; }
.gm-final-cta :focus-visible { outline-color:#d0e5c3; }
.gm-footer { padding-block:64px 28px; }
.gm-footer-top { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:40px; padding-bottom:36px; }
.gm-footer .gm-wordmark { font-size:32px; }
.gm-footer-identity>p { font-size:16px; line-height:1.7; margin-top:22px; max-width:44ch; }
.gm-footer-contact { display:flex; flex-direction:column; align-items:end; gap:14px; }
.gm-footer-contact-link { display:inline-flex; align-items:center; gap:12px; font-size:23px; letter-spacing:-.025em; line-height:1.5; min-height:44px; }
.gm-footer-contact>p { font-size:15px; line-height:1.5; }
.gm-footer-socials { display:flex; align-items:center; flex-wrap:wrap; gap:24px; }
.gm-footer-socials>a { display:inline-flex; align-items:center; gap:7px; font-size:15px; line-height:1.5; min-height:44px; }
.gm-footer-top .icon { width:18px; height:18px; }
.gm-footer a:hover { color:var(--brand); }
.gm-footer-bottom { display:flex; gap:20px 32px; justify-content:space-between; flex-wrap:wrap; align-items:center; padding-top:24px; padding-right:70px; border-top:1px solid var(--line); color:var(--muted); font-size:14px; line-height:1.5; }
.gm-footer-bottom>div { display:flex; flex-wrap:wrap; gap:8px 26px; align-items:center; }
.gm-footer-bottom a { display:flex; align-items:center; gap:8px; min-height:44px; }
.gm-footer-bottom .icon { width:16px; height:16px; }
.gm-mobile-cta { display:none; }
.gm-whatsapp-float { position:fixed; right:max(24px,env(safe-area-inset-right)); bottom:24px; z-index:24; width:58px; height:58px; display:inline-flex; align-items:center; justify-content:center; padding:14px; border-radius:50%; background:var(--brand); color:#fff; box-shadow:0 7px 24px rgb(23 60 35 / 18%); transition:background .2s,transform .2s; }
.gm-whatsapp-float:hover { background:#245f0d; transform:translateY(-3px); }
.gm-whatsapp-float:focus-visible { outline:3px solid var(--forest); outline-offset:4px; }
.gm-whatsapp-icon { width:28px; height:28px; flex-shrink:0; }
.gm-whatsapp-label { position:absolute; right:calc(100% + 10px); padding:10px 14px; border-radius:8px; background:var(--forest); color:white; font-size:14px; white-space:nowrap; opacity:0; transform:translateX(5px); pointer-events:none; transition:opacity .2s,transform .2s; }
.gm-whatsapp-float:hover .gm-whatsapp-label,.gm-whatsapp-float:focus-visible .gm-whatsapp-label { opacity:1; transform:none; }
.modal-open .gm-whatsapp-float,.menu-is-open .gm-whatsapp-float { display:none; }
#toast[popover] { margin:0; border:0; top:auto; right:auto; }

/* Dialogs follow the same readable type scale as the page. Business logic is unchanged. */
.gm-modal { width:min(calc(100% - 48px),1080px); max-width:none; max-height:calc(100dvh - 48px); border:1px solid var(--line); padding:0; border-radius:20px; background:var(--canvas); color:var(--forest); box-shadow:0 30px 100px rgb(0 0 0 / 20%); }
.gm-modal::backdrop { background:rgb(10 30 15 / 55%); backdrop-filter:blur(5px); }
.gm-modal[open] { animation:gm-modal-in .22s var(--motion) both; }
.gm-modal-close { position:absolute; top:20px; right:20px; z-index:3; }
.gm-service-modal[open] { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); }
.gm-service-detail-image { min-height:500px; background:var(--soft); }
.gm-service-detail-image>img { width:100%; height:100%; object-fit:cover; }
.gm-service-detail-copy { padding:76px 40px 38px; min-width:0; }
.gm-service-detail-copy h2 { font-size:44px; margin-top:18px; line-height:1.12; }
.gm-service-detail-copy>p { font-size:17px; line-height:1.75; margin-top:22px; }
.gm-service-specs { display:grid; gap:16px; font-size:16px; line-height:1.55; margin-top:24px; padding-block:22px; border-block:1px solid var(--line); }
.gm-service-specs>span { display:flex; align-items:center; gap:12px; }
.gm-service-specs .icon { width:20px; height:20px; color:var(--brand); }
.gm-service-detail-copy>.gm-service-detail-note { font-size:15px; margin-top:20px; }
.gm-service-detail-copy>.gm-button { margin-top:26px; }
.gm-service-detail-copy>small { display:block; font-size:14px; line-height:1.65; color:var(--muted); margin-top:15px; }
.gm-booking-modal { padding:30px; width:min(calc(100% - 48px),1200px); }
.gm-dialog-header { display:flex; gap:24px; justify-content:space-between; align-items:center; margin-bottom:28px; }
.gm-dialog-header h2 { font-size:32px; margin-top:12px; line-height:1.2; }
.gm-dialog-header .gm-icon-button { flex-shrink:0; }
.gm-booking-modal .booking-layout { gap:28px; }
.gm-booking-modal .booking-card { min-width:0; padding:30px; border-radius:16px; }
.gm-booking-modal .booking-progress { gap:12px; margin-bottom:30px; }
.gm-booking-modal .booking-progress button { font-size:15px; line-height:1.4; }
.gm-booking-modal .booking-progress button>strong { min-width:0; overflow-wrap:anywhere; }
.gm-booking-modal .button { background:var(--brand); color:white; border-radius:10px; font-size:16px; }
.gm-booking-modal .button:hover { background:#245f0d; border-color:#245f0d; }
.gm-booking-modal .button.button-outline { background:transparent; color:var(--forest); border-color:#a7b79e; }
.gm-booking-modal .step-title h3 { font-size:34px; }
.gm-booking-modal .step-title p { font-size:16px; }
.gm-booking-modal .booking-aside { position:static; }
.gm-booking-modal .booking-aside-copy h3 { font-size:30px; }
.gm-booking-modal .field input,.gm-booking-modal .field select,.gm-booking-modal .field textarea { border-radius:10px; font-size:16px; min-height:54px; }
.gm-booking-modal .duration-options { grid-template-columns:repeat(3,minmax(0,1fr)); }
.gm-progress-icon { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; }
.gm-progress-icon .icon { width:20px; height:20px; }
.gm-back-arrow { width:18px; height:18px; transform:rotate(180deg); }
.gm-legal-modal { max-width:740px; padding:66px 44px 40px; }
.gm-legal-modal h2 { font-size:42px; margin-top:20px; line-height:1.15; }
.gm-legal-modal p { font-size:17px; line-height:1.8; margin-top:24px; }
.gm-legal-modal .gm-text-link { margin-top:22px; }
.gm-noscript { max-width:var(--container); margin:20px auto; padding:24px; border:1px solid var(--line); background:var(--soft); font-size:16px; }
.gm-noscript a { text-decoration:underline; text-underline-offset:4px; }
html:not(.js) .gm-catalog-controls,html:not(.js) .gm-service-open::after { display:none; }
html:not(.js) .gm-service[hidden] { display:block!important; }
html:not(.js) .gm-services-foot { display:none; }
html:not(.js) .gm-legal-modal { position:static; display:block; margin:24px auto; }
html:not(.js) .gm-legal-modal [data-close-dialog] { display:none; }
html[lang='zh-CN'] .gm-wordmark { font-family:'Greatness Sans','Greatness Sans Fallback',Arial,sans-serif; }
html[lang='zh-CN'] .gm-wordmark>.gm-brand-tagline { font-family:var(--sans); }
html[lang='zh-CN'] .gm-eyebrow { letter-spacing:.025em; }
html[lang='zh-CN'] em { font-style:normal; }
html[lang='zh-CN'] .gm-hero h1 { font-size:clamp(58px,5.9vw,88px); }
@keyframes gm-title-in { from { transform:translateY(110%); } to { transform:translateY(0); } }
@keyframes gm-photo-in { from { opacity:.65; transform:scale(1.065); } to { opacity:1; transform:scale(1.025); } }
@keyframes gm-card-in { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
@keyframes gm-modal-in { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }

@media (max-width:1279px) {
  :root { --gutter:32px; }
  .gm-desktop-nav { display:none; }
  .gm-menu-trigger { display:flex; }
  .gm-language-switch { margin-left:auto; }
  .gm-hero { gap:40px; }
  .gm-hero h1 { font-size:clamp(64px,7.2vw,92px); }
  .gm-image-label { flex-wrap:wrap; }
  .gm-place-note>span:last-child { margin-left:28px; }
  .gm-facts>div { padding-inline:18px; }
  .gm-story { gap:36px; padding:32px; }
  .gm-story-copy h2 { font-size:44px; }
  .gm-pricing-intro { gap:14px 48px; }
  .gm-area-layout,.gm-guide,.gm-faq-layout { gap:48px; }
  .gm-final-cta { gap:48px; padding:48px; }
}
@media (max-width:959px) {
  :root { --gutter:28px; --type-h2:clamp(42px,6vw,60px); }
  .gm-nav { min-height:92px; gap:16px; }
  .gm-nav-actions>.gm-button { display:none; }
  .gm-hero { grid-template-columns:1fr; gap:36px; padding-top:36px; padding-bottom:48px; }
  .gm-hero-copy { padding:0; }
  .gm-hero h1 { font-size:clamp(70px,10.5vw,96px); }
  .gm-hero-description { max-width:620px; }
  .gm-hero-description>br { display:none; }
  .gm-hero-caption { display:none; }
  .gm-hero-photo { height:480px; border-radius:20px 20px 80px 20px; }
  .gm-image-label { flex-wrap:nowrap; }
  .gm-place-note>span:last-child { margin-left:auto; }
  .gm-facts { grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px 0; }
  .gm-facts>div:nth-child(odd) { padding-left:0; border-left:0; }
  .gm-facts>div:nth-child(even) { padding-right:0; }
  .gm-section { padding-block:80px; }
  .gm-section-head { gap:32px; }
  .gm-section-head>p { max-width:280px; font-size:17px; }
  .gm-service-grid { gap:32px 24px; }
  .gm-service-photo { aspect-ratio:1.2; }
  .gm-service-info h3 { font-size:26px; }
  .gm-service-info p { font-size:16px; }
  .gm-story { grid-template-columns:1fr; gap:36px; padding:32px; }
  .gm-story-photo { min-height:0; height:380px; }
  .gm-story-copy { padding:0 4px 8px; }
  .gm-story-copy h2 { font-size:52px; }
  .gm-story-copy>p { max-width:64ch; }
  .gm-promise-list { display:grid; grid-template-columns:1fr; }
  .gm-promise-list p { max-width:60ch; }
  .gm-pricing-intro { grid-template-columns:1fr; gap:24px; }
  .gm-pricing-intro h2 { grid-row:auto; }
  .gm-pricing-intro>p { padding-top:0; max-width:64ch; }
  .gm-pricing-intro>.gm-text-link { grid-column:auto; margin-top:-6px; }
  .gm-duration-list article { padding:28px 22px; }
  .gm-duration-value { font-size:58px; }
  .gm-process-grid { gap:24px; }
  .gm-process-grid h3 { font-size:24px; }
  .gm-process-grid p { font-size:16px; }
  .gm-area-layout,.gm-guide,.gm-faq-layout { grid-template-columns:1fr; gap:36px; }
  .gm-area-section { padding-block:80px; }
  .gm-area-layout>div>p,.gm-guide-intro>p,.gm-faq-layout>div>p { max-width:64ch; }
  .gm-area-note { margin-top:16px; }
  .gm-guide-content { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; }
  .gm-guide-content article+article { margin-top:0; }
  .gm-guide-content h3 { font-size:26px; }
  .gm-final-cta { grid-template-columns:1fr; gap:36px; padding:44px; }
  .gm-final-cta h2 { font-size:60px; }
  .gm-final-cta>div:last-child { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:16px 28px; }
  .gm-cta-rule,.gm-final-cta small { grid-column:1 / -1; }
  .gm-final-cta .gm-text-link { font-size:15px; }
  .gm-footer-top { grid-template-columns:1fr; gap:28px; }
  .gm-footer-contact { align-items:start; }
  .gm-booking-modal .booking-layout { grid-template-columns:1fr; }
  .gm-booking-modal .booking-aside { display:none; }
}
@media (max-width:799px) {
  html { scroll-padding-top:158px; }
  .gm-nav { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:0 12px; padding-block:14px 12px; min-height:136px; }
  .gm-brand { grid-column:1; grid-row:1; min-width:0; }
  .gm-nav-actions { grid-column:2; grid-row:1; }
  .gm-language-switch { grid-column:1 / -1; grid-row:2; margin:12px 0 0; justify-self:start; }
}
@media (max-width:599px) {
  :root { --gutter:20px; --type-body:16px; --type-lead:18px; --type-h2:clamp(39px,10.5vw,52px); --mobile-cta-height:calc(82px + max(12px,env(safe-area-inset-bottom,0px))); }
  html { scroll-padding-top:158px; scrollbar-gutter:auto; }
  body { padding-bottom:calc(var(--mobile-cta-height) + 16px); }
  .gm-nav { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:0 12px; padding-block:14px 12px; min-height:136px; }
  .gm-brand { grid-column:1; grid-row:1; gap:10px; min-width:0; }
  .gm-nav-actions { grid-column:2; grid-row:1; }
  .gm-wordmark { font-size:22px; gap:6px; }
  .gm-wordmark>.gm-brand-tagline { font-size:14px; letter-spacing:0; max-width:28ch; }
  .gm-logo-crop { width:40px; height:43px; flex-basis:40px; }
  .gm-logo-crop img { width:88px; height:88px; left:-24px; top:-16px; }
  .gm-icon-button { width:44px; height:44px; }
  .gm-language-switch { grid-column:1 / -1; grid-row:2; margin:12px 0 0; justify-self:start; }
  .gm-language-switch [data-language] { min-height:38px; padding:8px 12px; }
  .gm-hero { gap:28px; padding-top:30px; padding-bottom:36px; }
  .gm-hero-eyebrow { font-size:14px; letter-spacing:.015em; line-height:1.55; margin-bottom:26px; gap:10px; }
  .gm-hero h1 { font-size:clamp(59px,15.8vw,82px); line-height:1.04; margin-bottom:22px; }
  .gm-hero-description { font-size:18px; line-height:1.65; }
  .gm-hero-actions { margin-top:24px; gap:12px 22px; }
  .gm-hero-actions>.gm-button { padding-inline:20px; gap:16px; }
  .gm-hero-actions>.gm-text-link { font-size:16px; }
  .gm-hero-photo { height:380px; border-radius:16px 16px 64px 16px; }
  .gm-image-label { inset:20px; flex-wrap:wrap; gap:6px 14px; font-size:14px; }
  .gm-image-label>span:first-child { max-width:25ch; }
  .gm-photo-caption { left:22px; right:26px; bottom:25px; gap:16px; }
  .gm-photo-caption>span { font-size:28px; }
  .gm-price-pill { padding:12px; gap:4px 8px; }
  .gm-price-pill>strong { font-size:19px; }
  .gm-place-note { margin-top:14px; font-size:14px; gap:7px 8px; }
  .gm-place-note>span:last-child { margin-left:26px; }
  .gm-facts { padding-block:26px; gap:24px 0; }
  .gm-facts>div { gap:10px; padding-inline:16px; }
  .gm-facts>div>.icon { width:21px; height:21px; }
  .gm-facts strong { font-size:16px; }
  .gm-facts small { font-size:14px; line-height:1.6; }
  .gm-section { padding-block:64px; }
  .gm-section-head { display:block; margin-bottom:28px; }
  .gm-section-head .gm-eyebrow,.gm-area-layout .gm-eyebrow,.gm-faq-layout .gm-eyebrow,.gm-pricing .gm-eyebrow,.gm-guide .gm-eyebrow { margin-bottom:22px; }
  .gm-section-head>p { max-width:none; margin-top:22px; font-size:17px; padding-bottom:0; }
  .gm-catalog-controls { gap:16px; padding-block:16px; margin-bottom:28px; }
  .gm-filter-list { gap:6px; }
  .gm-filter-list button { padding:10px 14px; font-size:15px; }
  .gm-service-grid { grid-template-columns:1fr; gap:34px; }
  .gm-service-photo { aspect-ratio:1.2; border-radius:14px; }
  .gm-service-tag { top:15px; left:15px; }
  .gm-service-arrow { width:46px; height:46px; right:16px; bottom:16px; }
  .gm-service-info { padding-top:20px; }
  .gm-service-info h3 { font-size:28px; }
  .gm-service-info p { font-size:16px; line-height:1.7; }
  .gm-services-foot { display:grid; font-size:14px; margin-top:26px; gap:12px; }
  .gm-story { padding:20px; gap:28px; border-radius:18px; }
  .gm-story-photo { height:320px; border-radius:12px; }
  .gm-story-copy { padding:0 2px 8px; }
  .gm-story-copy h2 { font-size:clamp(34px,9.2vw,44px); }
  .gm-story-copy h2>.gm-eyebrow { margin-bottom:22px; }
  .gm-story-copy>p { font-size:16px; margin-top:22px; }
  .gm-promise-list { margin-top:24px; }
  .gm-promise-list>div { padding-block:20px; gap:14px; }
  .gm-promise-list h3 { font-size:19px; }
  .gm-promise-list p { font-size:16px; }
  .gm-pricing-intro { gap:22px; }
  .gm-pricing-intro>p,.gm-guide-intro>p { font-size:17px; }
  .gm-duration-list { grid-template-columns:1fr; margin-top:28px; }
  .gm-duration-list article { display:grid; grid-template-columns:104px minmax(0,1fr); gap:18px; align-items:center; padding:24px 20px; border-right:0; border-bottom:1px solid var(--line); }
  .gm-duration-list article:first-child { border-radius:14px 14px 0 0; }
  .gm-duration-list article:nth-child(3) { border-radius:0 0 14px 14px; border-bottom:0; }
  .gm-duration-list h3 { display:grid; gap:4px; font-size:16px; }
  .gm-duration-value { font-size:58px; }
  .gm-duration-list article>p { margin-top:0; font-size:16px; max-width:none; }
  .gm-pricing-note { font-size:14px; margin-top:20px; }
  .gm-process-grid { grid-template-columns:1fr; gap:28px; margin-top:32px; }
  .gm-process-grid article { padding-top:22px; }
  .gm-process-grid article>div { margin-bottom:20px; }
  .gm-step-index { font-size:44px; }
  .gm-process-grid h3 { font-size:26px; }
  .gm-process-grid p { font-size:16px; max-width:none; }
  .gm-area-section { padding-block:64px; }
  .gm-area-layout,.gm-guide,.gm-faq-layout { gap:30px; }
  .gm-area-layout>div>p,.gm-faq-layout>div>p { margin-top:22px; font-size:17px; }
  .gm-area-note { font-size:14px; }
  .gm-area-list { padding:4px 18px 20px; border-radius:16px; }
  .gm-area-group summary { padding-block:20px; min-height:82px; gap:12px; }
  .gm-area-group summary>span { gap:9px; font-size:21px; }
  .gm-area-group summary>span:last-child { gap:10px; font-size:14px; }
  .gm-area-group summary>span:first-child>.icon { display:none; }
  .gm-area-group summary>span:last-child>.icon { width:30px; height:30px; }
  .gm-area-pills { padding-bottom:22px; gap:8px; }
  .gm-area-pills button { font-size:15px; min-height:46px; gap:10px; }
  .gm-guide-content { display:block; }
  .gm-guide-content article { padding-top:24px; }
  .gm-guide-content article+article { margin-top:28px; }
  .gm-guide-content h3 { font-size:26px; }
  .gm-guide-content p,.gm-guide-content li { font-size:16px; }
  .gm-faq-item summary { font-size:18px; padding-block:23px; min-height:84px; gap:18px; }
  .gm-faq-item>div { padding:0 8px 24px 0; }
  .gm-faq-item>div>p { font-size:16px; line-height:1.8; }
  .gm-final-cta { padding:32px 24px; gap:30px; border-radius:18px; }
  .gm-final-cta h2 { font-size:clamp(34px,9.6vw,48px); }
  .gm-final-cta .gm-eyebrow { margin-bottom:24px; }
  .gm-final-cta p { font-size:16px; margin-top:22px; }
  .gm-final-cta>div:last-child { display:flex; gap:14px; }
  .gm-cta-rule { margin-bottom:8px; }
  .gm-final-cta .gm-button { width:100%; }
  .gm-final-cta .gm-text-link { font-size:16px; }
  .gm-footer { padding-block:42px 24px; }
  .gm-footer-top { gap:24px; padding-bottom:26px; }
  .gm-footer .gm-wordmark { font-size:25px; }
  .gm-footer .gm-brand { gap:10px; }
  .gm-footer-identity>p { font-size:16px; margin-top:20px; }
  .gm-footer-contact { gap:10px; }
  .gm-footer-contact-link { font-size:21px; gap:9px; }
  .gm-footer-socials { gap:20px; }
  .gm-footer-socials>a { font-size:15px; }
  .gm-footer-bottom { display:block; padding-right:0; font-size:14px; }
  .gm-footer-bottom>div { gap:4px 20px; margin-top:12px; }
  .gm-mobile-cta { display:flex; position:fixed; bottom:0; left:0; right:0; z-index:20; justify-content:space-between; align-items:center; gap:16px; padding:14px 20px max(14px,env(safe-area-inset-bottom)); border-top:1px solid var(--line); background:rgb(250 251 246 / 97%); backdrop-filter:blur(14px); }
  .gm-mobile-cta>span { font-size:14px; line-height:1.45; color:var(--muted); }
  .gm-mobile-cta strong { display:block; font-size:19px; color:var(--forest); margin-top:3px; }
  .gm-mobile-cta>.gm-button { min-height:52px; padding:13px 20px; gap:14px; font-size:16px; }
  .modal-open .gm-mobile-cta,.menu-is-open .gm-mobile-cta { display:none; }
  .gm-whatsapp-float { width:54px; height:54px; right:max(16px,env(safe-area-inset-right)); bottom:calc(var(--mobile-cta-height) + 14px); }
  .gm-whatsapp-label { display:none; }
  .gm-modal { width:calc(100% - 24px); max-height:calc(100dvh - 24px); border-radius:16px; }
  .gm-service-modal[open] { grid-template-columns:1fr; }
  .gm-service-detail-image { min-height:0; height:260px; }
  .gm-service-detail-copy { padding:28px 24px; }
  .gm-service-detail-copy h2 { font-size:34px; }
  .gm-service-detail-copy>p { font-size:16px; }
  .gm-service-detail-copy>.gm-button { width:100%; }
  .gm-modal-close { top:14px; right:14px; }
  .gm-booking-modal { padding:20px 14px; }
  .gm-dialog-header { gap:16px; margin-bottom:24px; padding-inline:4px; }
  .gm-dialog-header h2 { font-size:28px; }
  .gm-booking-modal .booking-card { padding:20px 16px; border-radius:12px; }
  .gm-booking-modal .booking-progress { gap:10px; }
  .gm-booking-modal .booking-progress button { flex-direction:column; align-items:start; gap:8px; min-height:84px; padding-bottom:14px; font-size:14px; }
  .gm-booking-modal .booking-progress button>strong { max-width:100%; }
  .gm-booking-modal .step-title h3 { font-size:30px; }
  .gm-booking-modal .form-grid { grid-template-columns:1fr; }
  .gm-booking-modal .duration-options { gap:8px; }
  .gm-booking-modal .duration-options label>span { flex-wrap:wrap; padding:16px 6px; }
  .gm-booking-modal .step-actions { flex-wrap:wrap; gap:16px; }
  .gm-booking-modal .step-actions .button { font-size:16px; padding:14px 18px; }
  .gm-legal-modal { padding:66px 24px 30px; }
  .gm-legal-modal h2 { font-size:34px; }
  .gm-legal-modal p { font-size:16px; }
  html[lang='zh-CN'] .gm-hero h1 { font-size:clamp(49px,13.2vw,70px); }
}
@media (max-width:359px) {
  :root { --gutter:16px; }
  .gm-nav { gap:0 8px; }
  .gm-wordmark { font-size:19px; }
  .gm-logo-crop { width:34px; height:38px; flex-basis:34px; }
  .gm-logo-crop img { left:-26px; top:-19px; }
  .gm-hero h1 { font-size:54px; }
  .gm-image-label { inset:18px; }
  .gm-photo-caption { left:18px; right:20px; gap:12px; }
  .gm-photo-caption>span { font-size:25px; }
  .gm-price-pill { padding:10px; gap:3px 5px; }
  .gm-facts>div { padding-inline:10px; }
  .gm-facts>div>.icon { display:none; }
  .gm-story { padding:16px; }
  .gm-area-list { padding-inline:14px; }
  .gm-area-group summary>span { font-size:19px; }
  .gm-area-group summary>span:last-child { gap:8px; }
  .gm-duration-list article { grid-template-columns:88px minmax(0,1fr); padding:22px 16px; gap:14px; }
  .gm-final-cta { padding-inline:20px; }
  .gm-footer .gm-wordmark { font-size:22px; }
  .gm-footer-contact-link { font-size:19px; }
  .gm-mobile-cta { padding-inline:16px; gap:12px; }
  .gm-mobile-cta>.gm-button { padding-inline:16px; gap:10px; }
}
@media (min-width:1600px) { .gm-footer-bottom { padding-right:0; } }
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none!important; transition:none!important; }
  .gm-heading-line>span,.gm-heading-line>em { transform:none; }
  [data-reveal] { opacity:1!important; transform:none!important; }
}

/* R1 framework repair: crawlable reviewed-area links + migrated trust note */
.gm-reviewed-area-links{grid-column:1/-1;margin-top:clamp(18px,2vw,28px);padding-top:18px;border-top:1px solid var(--line,rgba(24,24,24,.14))}
.gm-reviewed-area-links p,.gm-review-source-note{max-width:72ch}
.gm-reviewed-area-link-list{display:flex;flex-wrap:wrap;gap:10px 14px;margin-top:10px}
.gm-reviewed-area-link-list a,.gm-related-area-links a{text-decoration:underline;text-underline-offset:.18em}
.gm-related-area-links{margin-top:18px;padding-top:16px;border-top:1px solid var(--line,rgba(24,24,24,.14));display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}
