/* GRANDTHAI Moscow: photography, deep green and a legible commercial journey. */
:root {
  --xp-green:#193b2e; --xp-ink:#192c23; --xp-paper:#f7f6f0; --xp-white:#fffefa;
  --xp-soft:#e7ece4; --xp-light:#cddacc; --xp-muted:#526157; --xp-radius:4px;
  --ed-paper:var(--xp-paper); --ed-white:var(--xp-white); --ed-ink:var(--xp-ink);
  --ed-muted:var(--xp-muted); --ed-clay:var(--xp-green); --ed-clay-hover:#102a20;
  --ed-sand:var(--xp-soft); --ed-pale:var(--xp-soft); --ed-line:#c6cec3;
  --ed-radius:var(--xp-radius); --ed-header:80px; --ed-container:1320px;
}
body { font:17px/1.6 Arial,Helvetica,sans-serif; color:var(--xp-ink); }
.container { width:min(var(--ed-container),calc(100% - 64px)); }
h1,h2,h3,h4 { font-family:Georgia,'Times New Roman',serif; font-weight:400; letter-spacing:-.035em; }
h2 { font-size:clamp(34px,3.7vw,54px); line-height:1.1; }
h3 { font-size:30px; line-height:1.2; }
.gt-intro,.gt-hero__intro { color:var(--xp-ink); font-size:17px; line-height:1.65; }
.gt-eyebrow { font-size:14px; text-transform:none; letter-spacing:0; color:var(--xp-muted); }
.ed-number { display:none; }
.site-header.ed-header { background:var(--xp-paper); border:0; height:80px; }
.ed-header-row { min-height:80px; gap:24px; }
.ed-brand { flex-basis:250px; }
.ed-brand strong { font-size:28px; letter-spacing:-.05em; }
.ed-brand span { font-size:13px; letter-spacing:0; color:var(--xp-muted); }
.ed-desktop-nav { gap:24px; }
.ed-desktop-nav a,.ed-header-phone { font-size:14px; }
.menu-toggle { border:0; background:var(--xp-soft); border-radius:4px; }
.gt-btn,.btn { min-height:50px; border:0; border-radius:var(--xp-radius); padding:15px 24px; font-size:15px; transition:transform 160ms ease-out,background-color 160ms ease-out; box-shadow:none; }
.gt-btn:hover,.btn:hover { box-shadow:none; transform:none; }
.gt-btn:active,.btn:active { transform:scale(.98); }
.gt-btn--outline-light { background:var(--xp-soft); color:var(--xp-green); border:0; }
.gt-btn--outline-light:hover { background:var(--xp-light); color:var(--xp-ink); }
.gt-link { font-size:15px; font-weight:600; }
:focus-visible { outline:3px solid #a67928; outline-offset:5px; }
.xp-hero { position:relative; min-height:650px; min-height:min(780px,calc(100svh - 80px)); background:var(--xp-green); color:var(--xp-white); display:grid; align-items:end; isolation:isolate; overflow:hidden; }
.xp-hero__picture { position:absolute; inset:0; z-index:-2; overflow:hidden; }
.xp-hero__picture img { width:100%; height:100%; object-fit:cover; object-position:center 44%; }
/* A neutral scrim only under the words; the photograph remains the surface. */
.xp-hero::before { /* taste-skill-ignore: neutral scrim over the real hero photograph, the documented exception. */ content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(7,19,13,.84),rgba(7,19,13,.48) 48%,rgba(7,19,13,.08) 80%); }
.xp-hero__content { padding-block:88px 30px; }
.xp-hero h1 { max-width:850px; margin-bottom:30px; color:var(--xp-white); font-size:clamp(56px,5.65vw,82px); line-height:1.02; text-wrap:balance; }
.xp-hero__intro { max-width:570px; font-size:19px; line-height:1.6; margin:0 0 30px; }
.xp-hero .gt-actions { gap:18px 26px; }
.xp-hero .gt-btn--cream { background:var(--xp-paper); color:var(--xp-green); }
.xp-hero .gt-btn--cream:hover { background:#e0e9dc; }
.xp-hero .gt-btn--outline-light { padding:12px 0; min-height:50px; color:#fff; background:none; text-decoration:underline; text-underline-offset:5px; }
.xp-hero .gt-btn--outline-light:hover { background:none; }
.xp-hero__terms { max-width:520px; margin:20px 0 0; font-size:13px; line-height:1.6; color:#e7ede3; }
.xp-hero__address { margin-top:66px; display:flex; flex-wrap:wrap; gap:12px 35px; color:#fff; font-size:14px; }
.xp-hero__address p { margin:0; }
.xp-section { padding-block:100px; border:0; }
.gt-heading { max-width:none; margin-bottom:44px; display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); align-items:end; gap:32px 70px; }
.gt-heading h2 { max-width:750px; margin:0; }
.gt-heading .gt-intro { margin:0; max-width:55ch; }
.gt-heading--mascot { padding-right:0; }
.gt-mascot { display:none; }
.gt-section--lined { border:0; }
.xp-programs .gt-service-grid,.xp-programs.ed-home-programs .gt-service-grid { display:block; }
.xp-programs .gt-service,.xp-programs.ed-home-programs .gt-service { display:grid; grid-template-columns:180px minmax(0,1fr); gap:36px; border:0; background:none; border-radius:0; overflow:visible; margin-bottom:38px; }
.xp-programs .gt-service figure,.xp-programs.ed-home-programs .gt-service figure { width:100%; height:100%; min-height:0; aspect-ratio:1; border-radius:4px; overflow:hidden; }
.gt-service figure img { transition:transform 350ms ease-out; }
.gt-service:hover figure img { transform:none; }
.xp-programs .gt-service__body,.xp-programs.ed-home-programs .gt-service__body { padding:14px 0; display:grid; grid-template-columns:minmax(0,1fr) 250px; gap:32px; align-items:center; }
.xp-programs .gt-service h3 { margin-bottom:14px; font-size:32px; }
.xp-program-copy > p:not(.gt-eyebrow) { font-size:16px; line-height:1.65; max-width:62ch; margin-bottom:0; }
.xp-program-copy .gt-eyebrow { margin-bottom:9px; font-size:14px; text-transform:none; letter-spacing:0; }
.xp-program-booking .gt-service__meta { display:flex; border:0; padding:0 0 18px; margin:0; gap:15px; }
.xp-program-booking .gt-service__meta strong { font-size:25px; color:var(--xp-green); }
.xp-program-booking .gt-service__meta > span { font-size:14px; }
.xp-program-booking .gt-service__actions { align-items:center; gap:12px; }
.xp-program-booking .gt-service__actions .gt-link { font-size:14px; }
.xp-programs .gt-service.ed-featured-service { grid-template-columns:minmax(0,1fr) minmax(0,1fr); background:var(--xp-soft); gap:0; margin-bottom:64px; }
.xp-programs .ed-featured-service figure { aspect-ratio:auto; min-height:480px; border-radius:0; }
.xp-programs .ed-featured-service .gt-service__body { padding:54px; display:flex; flex-direction:column; align-items:stretch; justify-content:center; }
.xp-programs .ed-featured-service h3 { font-size:46px; max-width:420px; }
.xp-programs .ed-featured-service .xp-program-booking { margin-top:30px; }
.xp-programs .ed-featured-service .gt-service__meta { justify-content:flex-start; gap:36px; }
.gt-related-services { margin-top:38px; padding-top:18px; border:0; }
.gt-related-services .gt-eyebrow { font-size:15px; color:var(--xp-ink); }
#picker { background:var(--xp-soft); }
.gt-picker-form,.gt-picker-results { border:0; border-radius:4px; box-shadow:none; }
.gt-field { font-size:15px; }
.gt-field select { min-height:52px; font-size:16px; }
#prices { background:var(--xp-green); color:var(--xp-white); }
#prices h2,#prices .gt-intro,#prices .gt-source-note,#prices .gt-footnote,#prices [data-price-status] { color:var(--xp-white); }
#prices .gt-chips button { background:#30513e; color:#fff; border:0; border-radius:4px; font-size:14px; }
#prices .gt-chips button[aria-pressed=true] { background:var(--xp-paper); color:var(--xp-green); }
#prices .gt-price-wrap { border:0; border-radius:0; background:none; }
#prices .gt-price-table { background:none; color:var(--xp-white); }
#prices .gt-price-table th { background:#254736; color:var(--xp-white); text-transform:none; letter-spacing:0; font-size:14px; }
#prices .gt-price-table td { color:var(--xp-white); border-color:#466151; padding-block:26px; }
#prices .gt-price-table a,#prices .gt-price-table strong { color:var(--xp-white); }
#prices .gt-price-table small,#prices .gt-variant-list { color:#d7e2d2; }
#prices .gt-price-table tbody tr:nth-child(even) { background:transparent; }
#prices .gt-first-visit-card { background:var(--xp-paper); color:var(--xp-ink); border:0; border-radius:4px; padding:38px; margin-top:42px; }
#prices .gt-first-visit-card .gt-eyebrow { color:var(--xp-muted); }
#prices .gt-first-visit-card h3 { font-size:32px; }
#prices .gt-first-visit-card p,#prices .gt-first-visit-terms { color:var(--xp-ink); }
#prices .gt-first-visit-card a { color:var(--xp-green); }
#prices .gt-first-visit-card .gt-btn { color:#fff; }
.gt-first-visit-action strong { color:var(--xp-green); }
.ed-photo-essay { padding-block:90px; }
.ed-photo-ribbon { gap:30px; align-items:start; }
.ed-photo-ribbon figure:nth-child(2) { padding-top:70px; }
.ed-photo-ribbon figure img { border-radius:0; aspect-ratio:4/5; }
.ed-photo-ribbon figcaption { font-size:14px; color:var(--xp-muted); padding-top:14px; }
#salon { background:var(--xp-soft); }
.gt-gallery { grid-template-columns:repeat(6,minmax(0,1fr)); gap:28px; }
.gt-gallery__item,.gt-gallery__item:nth-child(-n+2) { grid-column:span 2; border:0; background:none; border-radius:0; }
.gt-gallery__item:first-child { grid-column:span 4; grid-row:span 2; position:relative; min-height:0; }
.gt-gallery__item>img,.gt-gallery__item:nth-child(-n+2)>img { aspect-ratio:4/3; border-radius:4px; object-fit:cover; }
.gt-gallery__item:first-child>img { position:absolute; inset:0 0 52px; aspect-ratio:auto; height:calc(100% - 52px); }
.gt-gallery__item>span { padding:14px 0; min-height:52px; font-size:14px; flex:0 0 auto; }
.gt-gallery__item:first-child>span { position:absolute; inset:auto 0 0; height:52px; }
.gt-gallery__item:hover>span { background:none; }
.gt-steps { gap:30px; }
.gt-steps li { border:0; background:none; padding:0; display:block; }
.gt-steps li > span { display:none; }
.gt-steps h3 { font-size:28px; }
.gt-steps p { font-size:16px; color:var(--xp-ink); }
.gt-note { background:var(--xp-soft); border:0; border-radius:4px; }
.gt-photo-story img { border-radius:4px; }
.gt-photo-story figcaption { font-size:14px; }
.gt-master { border:0; border-radius:0; background:none; }
.gt-master__body { padding-inline:0; }
.gt-master img { border-radius:4px; }
.gt-guest-review { border:0; border-radius:4px; background:var(--xp-soft); padding:30px; }
.gt-guest-review__label { text-transform:none; letter-spacing:0; font-size:14px; font-weight:400; }
.gt-guest-review__text { color:var(--xp-ink); font-size:17px; line-height:1.65; }
.gt-guest-review__avatar { display:none; }
.gt-guest-review__author h3 { font-size:15px; }
.gt-guest-review--invite { background:var(--xp-green); color:var(--xp-white); }
.gt-guest-review--invite h3,.gt-guest-review--invite p,.gt-guest-review--invite a { color:var(--xp-white); }
.gt-review-source h3 { font-size:27px; }
.gt-review-source { border:0; border-radius:0; background:var(--xp-soft); }
.gt-review-source p,.gt-reviews-note { color:var(--xp-ink); font-size:15px; }
#faq { background:var(--xp-soft); }
.gt-faq { border:0; }
.gt-faq details { border:0; padding:4px 22px; margin-bottom:14px; background:#f1f4ec; border-radius:4px; }
.gt-faq summary { font-size:18px; min-height:64px; }
.gt-faq details p { color:var(--xp-ink); font-size:16px; }
.gt-location { border:0; background:var(--xp-soft); border-radius:4px; }
.gt-location__copy { padding:45px; }
.gt-location h3 { font-size:42px; }
.gt-location dd,.gt-location dt { font-size:16px; }
#booking { background:var(--xp-green); color:var(--xp-white); }
#booking h2,#booking .gt-final p,#booking .gt-final a { color:var(--xp-white); }
#booking .gt-final .gt-btn { color:var(--xp-green); background:var(--xp-paper); }
#booking .gt-eyebrow { display:none; }
.gt-final h2 { font-size:clamp(34px,4vw,54px); }
.ed-footer { background:var(--xp-paper); border:0; padding-top:64px; }
.ed-footer-grid { gap:60px; }
.ed-footer .ed-footer-title { font-size:36px; line-height:1.12; max-width:300px; }
.ed-footer p,.ed-footer nav a { color:var(--xp-ink); font-size:15px; }
.ed-footer-bottom { border:0; padding-top:30px; }
.ed-footer-bottom p,.ed-footer-bottom a { font-size:13px; }
.ed-footer-mascot { width:70px; }
.ed-mobile-bar { background:var(--xp-paper); border:0; }
.xp-service { padding-block:32px 70px; }
.xp-service__grid { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:70px; align-items:center; }
.xp-service h1 { margin-bottom:26px; font-size:clamp(42px,4.55vw,66px); line-height:1.06; }
.xp-service__intro { font-size:18px; line-height:1.65; max-width:56ch; margin-bottom:26px; }
.xp-service__picture { overflow:hidden; border-radius:4px; }
.xp-service__picture img { width:100%; height:640px; object-fit:cover; object-position:center; }
.xp-service .gt-hero__price { border:0; padding:24px; background:var(--xp-soft); margin-block:24px 14px; }
.xp-service .gt-offer-hero-terms { font-size:14px; }
.xp-service .gt-hero__local { font-size:14px; }
.xp-service .gt-breadcrumb { font-size:14px; margin-bottom:30px; }
@media(hover:hover)and(pointer:fine) {
 .gt-btn:hover { transform:translateY(-2px); }
 .gt-service:hover figure img,.gt-gallery__item:hover img { transform:scale(1.025); }
 .gt-gallery__item img { transition:transform 350ms ease-out; }
}
@media(max-width:1180px) {
 .ed-header-phone { display:none; }
 .ed-header-row { gap:20px; }
 .ed-brand { flex-basis:225px; }
 .ed-desktop-nav { gap:18px; }
 .xp-programs .gt-service__body,.xp-programs.ed-home-programs .gt-service__body { grid-template-columns:minmax(0,1fr) 225px; gap:25px; }
 .xp-programs .gt-service,.xp-programs.ed-home-programs .gt-service { grid-template-columns:150px minmax(0,1fr); gap:28px; }
 .xp-programs .ed-featured-service .gt-service__body { padding:38px; }
 .xp-service__grid { gap:40px; }
}
@media(max-width:980px) {
 .xp-hero h1 { max-width:760px; font-size:64px; }
 .xp-hero::before { background:rgba(7,19,13,.56); }
 .xp-hero__content { padding-top:60px; }
 .xp-hero__intro { max-width:570px; }
 .xp-section { padding-block:76px; }
 .gt-heading { grid-template-columns:1fr; gap:20px; margin-bottom:35px; }
 .gt-heading .gt-intro { max-width:74ch; }
 .xp-programs .gt-service__body,.xp-programs.ed-home-programs .gt-service__body { display:block; }
 .xp-program-booking { margin-top:24px; }
 .xp-program-booking .gt-service__meta { justify-content:flex-start; gap:30px; }
 .xp-program-booking .gt-service__actions { justify-content:flex-start; gap:24px; }
 .xp-programs .gt-service.ed-featured-service { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
 .xp-programs .ed-featured-service h3 { font-size:36px; }
 .xp-programs .ed-featured-service .gt-service__body { padding:32px; }
 .gt-gallery { gap:22px; }
 .gt-location__copy { padding:30px; }
 .xp-service__grid { gap:32px; }
 .xp-service h1 { font-size:44px; }
 .xp-service__picture img { height:620px; }
 .xp-service .gt-actions { flex-direction:column; align-items:stretch; }
}
@media(max-width:700px) {
 :root { --ed-header:72px; }
 body { font-size:16px; }
 .container { width:calc(100% - 32px); }
 .site-header.ed-header,.ed-header-row { height:72px; min-height:72px; }
 .ed-header .ed-brand strong { font-size:25px; }
 .ed-header .ed-brand span { font-size:12px; }
 .xp-hero { min-height:690px; }
 .xp-hero__picture img { object-position:57% center; }
 .xp-hero::before { /* taste-skill-ignore: neutral photo scrim for mobile text contrast. */ background:linear-gradient(0deg,rgba(7,19,13,.89),rgba(7,19,13,.58) 62%,rgba(7,19,13,.12)); }
 .xp-hero__content { padding-block:120px 28px; }
 .xp-hero h1 { font-size:43px; margin-bottom:24px; max-width:540px; }
 .xp-hero__intro { font-size:17px; max-width:42ch; margin-bottom:25px; }
 .xp-hero .gt-actions { gap:14px 22px; }
 .xp-hero .gt-btn { font-size:14px; padding-inline:19px; }
 .xp-hero .gt-btn--outline-light { padding-inline:0; }
 .xp-hero__terms { font-size:13px; margin-top:17px; }
 .xp-hero__address { margin-top:37px; display:grid; gap:5px; font-size:14px; }
 .xp-section { padding-block:60px; }
 h2 { font-size:34px; }
 .gt-heading { gap:18px; margin-bottom:30px; }
 .gt-intro { font-size:16px; }
 .xp-programs .gt-service,.xp-programs.ed-home-programs .gt-service,.xp-programs .gt-service.ed-featured-service { grid-template-columns:1fr; gap:0; margin-bottom:40px; }
 .xp-programs .gt-service figure,.xp-programs.ed-home-programs .gt-service figure,.xp-programs .ed-featured-service figure { aspect-ratio:16/10; height:auto; min-height:0; }
 .xp-programs .gt-service__body,.xp-programs.ed-home-programs .gt-service__body { padding:24px 0; }
 .xp-programs .ed-featured-service .gt-service__body { padding:28px 24px; }
 .xp-programs .gt-service h3,.xp-programs .ed-featured-service h3 { font-size:30px; }
 .xp-program-copy > p:not(.gt-eyebrow) { font-size:16px; }
 .xp-program-booking .gt-service__meta { justify-content:space-between; }
 .xp-program-booking .gt-service__actions { justify-content:space-between; gap:15px; }
 .xp-program-copy .gt-eyebrow { font-size:14px; }
 .gt-service__meta strong { font-size:24px; }
 #prices .gt-price-table tbody tr { background:#254736; border:0; padding:24px 20px; margin-bottom:18px; grid-template-columns:minmax(0,1fr) auto; gap:10px 16px; }
 #prices .gt-price-table th[scope="row"] { grid-column:1/-1; grid-row:1; font-size:20px; line-height:1.4; }
 #prices .gt-price-table td { padding:0; }
 #prices .gt-price-table td:nth-child(3) { grid-column:1/-1; grid-row:2; text-align:left; padding-block:4px 10px; }
 #prices .gt-price-table td:nth-child(3) strong { font-size:25px; }
 #prices .gt-price-table .gt-variant-list { white-space:normal; font-size:13px; }
 #prices .gt-price-table td:nth-child(2) { grid-column:1; grid-row:3; align-self:center; font-size:14px; }
 #prices .gt-price-table td:nth-child(4) { grid-column:2; grid-row:3; align-self:center; }
 #prices .gt-price-table td:nth-child(4) .gt-link { font-size:14px; }
 #prices .gt-price-table td::before { color:#d7e2d2; }
 #prices .gt-first-visit-card { padding:27px 22px; }
 #prices .gt-first-visit-card h3 { font-size:24px; }
 .ed-photo-ribbon figure:nth-child(2) { padding-top:0; }
 .ed-photo-ribbon figure img { aspect-ratio:4/3; }
 .gt-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 16px; }
 .gt-gallery__item,.gt-gallery__item:nth-child(-n+2),.gt-gallery__item:first-child { grid-column:auto; grid-row:auto; }
 .gt-gallery__item:first-child { grid-column:1/-1; }
 .gt-gallery__item:first-child>img,.gt-gallery__item>img,.gt-gallery__item:nth-child(-n+2)>img { position:static; aspect-ratio:4/3; height:auto; }
 .gt-gallery__item:first-child>span { position:static; height:auto; }
 .gt-gallery__item>span { font-size:14px; }
 .gt-guest-review { padding:25px; }
 .gt-location__copy { padding:28px 24px; }
 .gt-location h3 { font-size:35px; }
 .gt-final h2 { font-size:36px; }
 .ed-footer .ed-footer-title { font-size:31px; }
 .ed-footer-grid { gap:35px; }
 .ed-footer p,.ed-footer nav a { font-size:15px; }
 .ed-footer-bottom { margin-top:28px; }
 .xp-service { padding-block:25px 45px; }
 .xp-service__grid { grid-template-columns:1fr; gap:32px; }
 .xp-service h1 { font-size:38px; margin-bottom:23px; }
 .xp-service__intro { font-size:17px; }
 .xp-service__picture img { height:auto; aspect-ratio:4/3; object-position:center; }
 .xp-service .gt-breadcrumb { margin-bottom:24px; font-size:13px; }
 .xp-service .gt-actions { flex-direction:row; align-items:center; }
 .xp-service .gt-hero__price { padding:22px 20px; }
 .gt-steps h3 { font-size:26px; }
}
@media(max-width:390px) {
 .xp-hero h1 { font-size:38px; }
 .xp-hero .gt-actions { align-items:flex-start; flex-direction:column; gap:5px; }
 .xp-hero { min-height:730px; }
 .xp-service h1 { font-size:32px; }
 h2 { font-size:32px; }
 .gt-btn { padding-inline:18px; }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
 .gt-btn:hover,.gt-btn:active,.gt-service:hover figure img,.gt-gallery__item:hover img { transform:none; }
}
