/* СОБРАНО build_css.py — правьте исходники: static/samui/fonts/fonts.css, static/samui/tokens.css, static/samui/samui.css */
/* self-hosted Manrope и Montserrat (variable, кириллица + латиница) */
@font-face{font-family:'Manrope';font-style:normal;font-weight:400 700;font-display:swap;src:url(/static/samui/fonts/manrope-cyrillic-xn7gYHE4.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:'Manrope';font-style:normal;font-weight:400 700;font-display:swap;src:url(/static/samui/fonts/manrope-latin-xn7gYHE4.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:500 800;font-display:swap;src:url(/static/samui/fonts/montserrat-cyrillic-JTUSjIg1.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:500 800;font-display:swap;src:url(/static/samui/fonts/montserrat-latin-JTUSjIg1.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

/* SAMUI · тайская spa-деревня — дизайн-токены сайта. Значения из макетов pages-html/*.dc.html */
:root {
  /* цвета */
  --sm-sand: #EFE3D0;        /* полотно светлых блоков — молочный пляжный песок */
  --sm-sand-2: #F7EEDF;      /* карточки, поля, светлые плашки */
  --sm-brown: #4A2E1C;       /* тёплый коричневый: кнопки, обводки, подвал, заголовки на тёмном */
  --sm-brown-2: #35200F;     /* тёмные фото-блоки: герой, мастера, сертификаты; подложка меню */
  --sm-text: #2B1A10;        /* основной текст на песке */
  --sm-muted: #766049;       /* второстепенный текст (контраст 4.6:1 на песке) */
  --sm-line: #4A2E1C;        /* обводка карточек 1px */
  --sm-line-soft: #D9C7AE;   /* разделители внутри карточек */
  --sm-on-dark: #F3E7D3;     /* текст на коричневом */
  --sm-on-dark-muted: #C9AE8F;
  --sm-blue: #2E9EC2;        /* голубой логотипа: акценты, цены, активные вкладки, часть кнопок */
  --sm-blue-2: #1C7FA0;      /* hover голубого */
  --sm-veil: rgba(43,26,16,0.55);   /* вуаль на фото в тёмных блоках */
  --sm-veil-light: rgba(239,227,208,0.55); /* вуаль на фото за карточками программ */

  /* шрифты */
  --sm-font-display: 'Montserrat', 'Manrope', sans-serif;   /* заголовки, кнопки, вкладки, меню — капслок */
  --sm-font-text: 'Manrope', 'Segoe UI', system-ui, sans-serif;
  --sm-h1: 700 150px/0.96 var(--sm-font-display);   /* герой */
  --sm-h1-promo: 700 260px/0.92 var(--sm-font-display);
  --sm-h2: 700 64px/1.08 var(--sm-font-display);    /* разделы (52–64) */
  --sm-h3: 700 30px/1.1 var(--sm-font-display);
  --sm-nav: 600 26px/1 var(--sm-font-display);      /* МЕНЮ · КОНТАКТЫ в шапке */
  --sm-menu-link: 700 64px/1.4 var(--sm-font-display);   /* оверлей меню, крупные */
  --sm-menu-link-2: 600 52px/1.45 var(--sm-font-display);
  --sm-footer-link: 700 48px/1.5 var(--sm-font-display);
  --sm-button: 600 21px/1 var(--sm-font-display);   /* 72 px; 18 px на 52–56; 16 px на 48 */
  --sm-tab: 600 20px/1.15 var(--sm-font-display);
  --sm-lead: 500 26px/1.35 var(--sm-font-text);
  --sm-body: 400 18px/1.5 var(--sm-font-text);
  --sm-body-lg: 400 21px/1.4 var(--sm-font-text);
  --sm-caption: 400 16px/1.45 var(--sm-font-text);

  /* сетка */
  --sm-gutter: 64px;         /* контейнер до 1440 (.wrap) */
  --sm-section: 64px;        /* вертикальный отступ раздела (мастера — 80) */
  --sm-gap: 24px;
  --sm-divider: 320px;       /* фотопереход между блоками (300–340) */

  /* радиусы */
  --sm-r-card: 24px;
  --sm-r-card-lg: 28px;
  --sm-r-tile: 18px;
  --sm-r-input: 16px;
  --sm-r-pill: 999px;
  --sm-r-arch: 380px 380px 28px 28px;      /* фото-арка */
  --sm-r-leaf: 24px 200px 24px 200px;      /* фото-лист (и зеркально 200/24) */

  /* размеры */
  --sm-header: 112px;
  --sm-btn-xl: 72px; --sm-btn-lg: 64px; --sm-btn: 56px; --sm-btn-sm: 48px;
  --sm-tab-h: 72px;
  --sm-input: 56px;
  --sm-dots: 64px;           /* плавающая кнопка «•••» */
}

/* Большие мониторы: сайт свёрстан под ~1520px ширины, шире — увеличиваем всё пропорционально, чтобы не было узкой полосы с мелким текстом.
   --zf = тот же коэффициент: единицы экрана (vw/vh) в CSS делятся на него, иначе высота «на весь экран» вылезет за экран. */
@media (min-width:1680px){html{zoom:1.1;--zf:1.1}}
@media (min-width:1840px){html{zoom:1.2;--zf:1.2}}
@media (min-width:2000px){html{zoom:1.3;--zf:1.3}}
@media (min-width:2160px){html{zoom:1.4;--zf:1.4}}
@media (min-width:2320px){html{zoom:1.5;--zf:1.5}}
@media (min-width:2480px){html{zoom:1.6;--zf:1.6}}
@media (min-width:2640px){html{zoom:1.7;--zf:1.7}}
@media (min-width:2800px){html{zoom:1.8;--zf:1.8}}

/* SAMUI · тайская spa-деревня — дизайн-система сайта (по design/samui-site/DESIGN.md).
   Токены — tokens.css (--sm-*). Здесь: база, типографика, контейнер, кнопки, карточки,
   вкладки, поля, фотопереходы, декор, шапка, меню-оверлей, «•••», подвал. */

/* ---------- база ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:96px}
body{margin:0;background:var(--sm-sand);color:var(--sm-text);font:var(--sm-body);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
h1,h2,h3,h4,p,ol,ul,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
:focus-visible{outline:2px solid var(--sm-blue);outline-offset:3px;border-radius:4px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
body.is-locked{overflow:hidden}
[hidden]{display:none!important}
/* декор выходит за край: clip не даёт прокрутить секцию вбок фокусом/scrollIntoView */
.page-hero,.hero,.ftr,.section--dark{overflow:clip}

:root{
  --g:var(--sm-gutter);           /* поля страницы, меняются на брейкпоинтах */
  --sec:var(--sm-section);
  --h1:150px; --h2:64px; --h2-m:56px; --h2-s:52px; --h2-xl:84px;
  --divider:var(--sm-divider);
  --r-panel:0px;                  /* скругления по краям блоков убраны (правки 30.10) */
  --dk:.5;                        /* во сколько раз фотопереход ниже макетного: в макете 300–340 — слишком рыхло */
}

/* ---------- типографика ---------- */
.h1,.h2,.h3,.caps{font-family:var(--sm-font-display);text-transform:uppercase}
.h1{font-size:var(--h1);font-weight:700;line-height:.96;letter-spacing:.01em}
.h2{font-size:var(--h2);font-weight:700;line-height:1.08;letter-spacing:-.01em;color:var(--sm-brown-2);overflow-wrap:break-word}
.h2--m{font-size:var(--h2-m)}
.h2--s{font-size:var(--h2-s)}
.h2--xs{font-size:44px}
.h2--xl{font-size:var(--h2-xl)}
.on-dark .h2,.h2--light{color:var(--sm-on-dark)}
.h3{font-size:30px;font-weight:700;line-height:1.1}
.lead{font-size:28px;line-height:1.35}
.t-lg{font-size:20px;line-height:1.4}
.t-md{font-size:17px;line-height:1.45}
.t-sm{font-size:15px;line-height:1.45}
.muted{color:var(--sm-muted)}
.on-dark{color:var(--sm-on-dark)}
.on-dark .muted{color:var(--sm-on-dark-muted)}
.blue{color:var(--sm-blue)}
.prose p+p{margin-top:1em}
.prose a{text-decoration:underline;text-underline-offset:3px}
.prose h2,.prose h3{font-family:var(--sm-font-display);text-transform:uppercase;line-height:1.15;margin:1.6em 0 .6em;color:var(--sm-brown-2)}
.prose h2{font-size:32px}.prose h3{font-size:22px}
.prose ul,.prose ol{margin:1em 0;padding-left:1.3em}
.prose ul{list-style:disc}.prose ol{list-style:decimal}
.prose li+li{margin-top:.4em}

/* ---------- контейнер и разделы ---------- */
.wrap{padding-left:var(--g);padding-right:var(--g);max-width:calc(1440px + 2 * var(--g));margin-left:auto;margin-right:auto}
.section{position:relative;overflow-x:clip;overflow-y:visible;padding:var(--sec) 0}
.section>.wrap{position:relative;display:flex;flex-direction:column;gap:40px}
.section--dark{background:var(--sm-brown-2);color:var(--sm-on-dark);border-radius:var(--r-panel);overflow:clip}
.hero,.page-hero{border-radius:0 0 var(--r-panel) var(--r-panel)}
.section--tall{padding:80px 0}
.section__head{display:grid;grid-template-columns:1.3fr 1fr;gap:48px;align-items:end}
.section__head--top{align-items:start}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.cols--center{align-items:center}
.cols>*,.section__head>*,.grid-2>*,.grid-3>*,.grid-4>*{min-width:0}
.stack{display:flex;flex-direction:column;gap:24px}
.stack--s{gap:12px}.stack--m{gap:18px}.stack--l{gap:28px}
.row{display:flex;flex-wrap:wrap;align-items:center;gap:16px}
.row--s{gap:8px}
.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:24px}

/* фото-фон раздела под вуалью */
.bg-photo{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.bg-photo img,.bg-photo picture{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.bg-photo::after{content:"";position:absolute;inset:0;background:var(--sm-veil)}
.bg-photo--dark img{filter:saturate(.75)}
.bg-photo--soft img{opacity:.35;filter:saturate(.6)}
.bg-photo--soft::after{background:rgba(43,26,16,.45)}
.bg-photo--sand img{opacity:.5;filter:saturate(.7)}
.bg-photo--sand::after{background:linear-gradient(180deg,var(--sm-sand) 0%,var(--sm-veil-light) 30%,var(--sm-veil-light) 70%,var(--sm-sand) 100%)}

/* ---------- кнопки-пилюли ---------- */
.btn{height:var(--sm-btn);padding:0 34px;display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:var(--sm-r-pill);font-family:var(--sm-font-display);font-size:18px;font-weight:600;text-transform:uppercase;letter-spacing:.02em;white-space:nowrap;transition:background .2s,color .2s,box-shadow .2s;background:var(--sm-brown);color:var(--sm-on-dark);border:0;cursor:pointer;text-align:center}
.btn:hover{background:var(--sm-brown-2);color:var(--sm-on-dark)}
.btn--blue{background:var(--sm-blue);color:var(--sm-on-dark)}
.btn--blue:hover{background:var(--sm-blue-2)}
.btn--sand{background:var(--sm-sand-2);color:var(--sm-text)}
.btn--sand:hover{background:#fff;color:var(--sm-text)}
.btn--line{background:transparent;color:var(--sm-text);box-shadow:inset 0 0 0 1px var(--sm-line)}
.btn--line:hover{background:var(--sm-brown);color:var(--sm-on-dark)}
.btn--line-light{background:transparent;color:var(--sm-on-dark);box-shadow:inset 0 0 0 1px rgba(243,231,211,.6)}
.btn--line-light:hover{background:rgba(243,231,211,.12);color:var(--sm-on-dark)}
.btn--xl{height:var(--sm-btn-xl);font-size:21px}
.btn--lg{height:var(--sm-btn-lg);font-size:20px}
.btn--md{height:52px;padding:0 24px}
.btn--sm{height:var(--sm-btn-sm);padding:0 20px;font-size:15px}
.btn--wide{min-width:320px}
.btn--block{width:100%}
.btn[disabled],.btn.is-busy{opacity:.6;pointer-events:none}
.btn svg{width:22px;height:22px;flex-shrink:0}

/* текстовая ссылка со стрелкой */
.link-arrow{display:inline-flex;align-items:center;gap:10px;font-size:16px}
.link-arrow svg{width:22px;height:22px;transition:transform .2s}
.link-arrow:hover svg{transform:translateX(4px)}

/* иконки (stroke) */
.ico{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}

/* ---------- карточки, плитки, плашки ---------- */
.card{padding:26px 28px 28px;display:flex;flex-direction:column;gap:14px;border-radius:var(--sm-r-card);border:1px solid var(--sm-line);background:var(--sm-sand-2)}
.card--glass{background:rgba(247,238,223,.92)}
.card--lg{padding:36px;border-radius:var(--sm-r-card-lg);gap:24px}
.card--blue{background:var(--sm-blue);border-color:var(--sm-blue);color:var(--sm-on-dark)}
.card__title{font-size:20px;font-weight:600;line-height:1.3}
.card__meta{display:flex;flex-direction:column;gap:4px;font-size:17px;line-height:1.4;color:var(--sm-muted)}
.card__price{color:var(--sm-blue);font-size:19px;font-weight:700}
.card__price s{color:var(--sm-muted);font-weight:400;font-size:16px;margin-left:6px}
.card__actions{padding-top:8px;display:flex;flex-wrap:wrap;gap:10px;margin-top:auto}
.tile{min-height:84px;padding:16px 20px;display:flex;align-items:center;gap:16px;border:1px solid var(--sm-line);border-radius:20px;background:var(--sm-sand-2)}
.tile__body{flex-grow:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.tile__title{font-size:18px;font-weight:600}
.tile__sub{font-size:15px;color:var(--sm-muted)}
.tile__price{font-size:18px;font-weight:700;white-space:nowrap}
.plate{display:flex;align-items:center;gap:16px;padding:22px 26px;border-radius:22px;background:var(--sm-brown);color:var(--sm-on-dark)}
.plate__big{font-family:var(--sm-font-display);font-size:48px;font-weight:700;line-height:1;color:var(--sm-blue);flex-shrink:0}
.big-num{font-family:var(--sm-font-display);font-size:52px;font-weight:700;line-height:1;color:var(--sm-blue)}
.badge{height:34px;padding:0 14px;display:inline-flex;align-items:center;border-radius:var(--sm-r-pill);background:var(--sm-blue);color:var(--sm-on-dark);font-size:16px;font-weight:700;white-space:nowrap}
.chip{height:48px;padding:0 20px;display:inline-flex;align-items:center;border-radius:var(--sm-r-pill);border:1px solid var(--sm-line);font-size:16px;transition:background .2s,color .2s}
.chip:hover,.chip.is-active{background:var(--sm-brown);color:var(--sm-on-dark)}
.on-dark .chip{border-color:rgba(243,231,211,.5);color:var(--sm-on-dark)}
.on-dark .chip:hover{background:rgba(243,231,211,.12)}
.tag{height:30px;padding:0 12px;display:inline-flex;align-items:center;border-radius:var(--sm-r-pill);border:1px solid rgba(243,231,211,.4);color:var(--sm-on-dark);font-size:13px}
.checks{display:flex;flex-direction:column;gap:8px}
.checks li{display:flex;align-items:flex-start;gap:10px;font-size:16px;color:var(--sm-muted)}
.checks svg{width:18px;height:18px;margin-top:2px;color:var(--sm-brown)}

/* нумерованные шаги */
.steps li{display:flex;gap:20px;align-items:flex-start;padding:18px 0;border-top:1px solid var(--sm-line-soft)}
.steps__n{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--sm-brown);color:var(--sm-on-dark);font-size:15px;font-weight:600}
.steps--pic li{align-items:center;padding:14px 0}
.steps__pic{flex-shrink:0;width:76px;height:76px;display:flex;align-items:center;justify-content:center}
.steps__pic img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}
.steps__pic+.steps__b{padding-top:0}
.steps__b{display:flex;flex-direction:column;gap:4px;padding-top:6px}
.steps__t{font-size:20px;font-weight:600}
.steps__d{font-size:16px;color:var(--sm-muted);line-height:1.45}

/* ---------- фото и их формы ---------- */
.ph{width:100%;object-fit:cover;display:block;background:var(--sm-sand-2)}
.ph--arch{border-radius:var(--sm-r-arch)}
.ph--leaf{border-radius:var(--sm-r-leaf)}
.ph--leaf-r{border-radius:200px 24px 200px 24px}
.ph--leaf-s{border-radius:20px 120px 20px 120px}
.ph--leaf-sr{border-radius:120px 20px 120px 20px}
.ph--r{border-radius:var(--sm-r-card)}

/* ---------- вкладки-сегмент ---------- */
.seg{display:flex}
.seg__btn{flex:1;min-width:0;height:var(--sm-tab-h);padding:0 16px;border:1px solid var(--sm-line);margin-left:-1px;background:var(--sm-sand-2);color:var(--sm-text);font:var(--sm-tab);text-transform:uppercase;transition:background .2s,color .2s;display:flex;align-items:center;justify-content:center;text-align:center}
.seg__btn:first-child{margin-left:0;border-radius:36px 0 0 36px}
.seg__btn:last-child{border-radius:0 36px 36px 0}
.seg__btn:hover{background:#fff}
.seg__btn[aria-selected="true"],.seg__btn[aria-pressed="true"],.seg__btn.is-active{background:var(--sm-blue);color:var(--sm-on-dark);position:relative;z-index:1}
.seg--sm .seg__btn{height:60px;font:400 17px/1.2 var(--sm-font-text);text-transform:none;background:transparent}
.seg--sm .seg__btn:first-child{border-radius:30px 0 0 30px}
.seg--sm .seg__btn:last-child{border-radius:0 30px 30px 0}

/* ---------- поля ---------- */
.field{display:flex;flex-direction:column;gap:8px;flex:1;min-width:0}
.field__label{font-size:14px;color:var(--sm-muted)}
.input{height:var(--sm-input);width:100%;padding:0 18px;border:1px solid var(--sm-line);border-radius:var(--sm-r-input);background:var(--sm-sand-2);font-size:17px;color:var(--sm-text);outline:none;transition:box-shadow .2s}
textarea.input{height:auto;min-height:120px;padding:14px 18px;resize:vertical}
select.input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234A2E1C' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;background-size:20px;padding-right:48px}
.input:focus{box-shadow:0 0 0 2px var(--sm-blue)}
.input::placeholder{color:#A89177}
.input.is-invalid{border-color:#B3452C;box-shadow:0 0 0 1px #B3452C}
.check{display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:1.45;color:var(--sm-muted);cursor:pointer}
.check input{width:18px;height:18px;margin:2px 0 0;accent-color:var(--sm-brown);flex-shrink:0}
.check a{text-decoration:underline;color:var(--sm-brown)}
.form-err{font-size:14px;color:#B3452C}
.form-ok{display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.fields-row{display:flex;gap:12px}
.radio-pills{display:flex;flex-wrap:wrap;gap:8px}
.radio-pills input{position:absolute;opacity:0;pointer-events:none}
.radio-pills label{height:48px;padding:0 20px;display:inline-flex;align-items:center;border-radius:var(--sm-r-pill);border:1px solid var(--sm-line);font-size:16px;cursor:pointer;transition:background .2s,color .2s}
.radio-pills input:checked+label{background:var(--sm-blue);border-color:var(--sm-blue);color:var(--sm-on-dark)}
.radio-pills input:focus-visible+label{outline:2px solid var(--sm-blue);outline-offset:3px}

/* ---------- фотопереход между блоками ---------- */
.divider{display:none;position:relative;height:max(72px,calc(var(--divider) * var(--dk)));overflow:hidden;background:var(--sm-sand)}
.divider img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% var(--y,60%);filter:sepia(.35) saturate(.7) brightness(1.02)}
.divider--flip img{transform:scaleX(-1)}
.divider::after{content:"";position:absolute;inset:0}
.divider--s2s::after{background:linear-gradient(180deg,#EFE3D0 0%,rgba(239,227,208,.12) 42%,rgba(239,227,208,.12) 58%,#EFE3D0 100%)}
.divider--s2d{background:var(--sm-brown-2)}
.divider--s2d::after{background:linear-gradient(180deg,#EFE3D0 0%,rgba(239,227,208,.1) 38%,rgba(53,32,15,.55) 72%,#35200F 100%)}
.divider--d2s::after{background:linear-gradient(180deg,#35200F 0%,rgba(53,32,15,.55) 28%,rgba(239,227,208,.1) 62%,#EFE3D0 100%)}
.divider--sm{--divider:240px}
/* орнамент-лотос между светлыми блоками */
.orn{display:flex;justify-content:center;padding:4px 0}
.orn__img{width:230px;height:auto;opacity:.9}
/* караван слонов стоит на верхнем крае подвала */
.caravan{position:relative;z-index:1;display:flex;justify-content:center;align-items:flex-end;gap:clamp(14px,calc(2.4vw / var(--zf,1)),36px);padding-top:24px;margin-bottom:-5px}
.caravan img{width:auto;height:clamp(58px,calc(6.4vw / var(--zf,1)),96px)}
.caravan img:first-child{height:clamp(46px,calc(5.2vw / var(--zf,1)),78px)}
.caravan .caravan__flip{transform:scaleX(-1)}

/* ---------- рисованный декор ---------- */
.decor{position:absolute;pointer-events:none;width:var(--s,240px);height:var(--s,240px);transform:rotate(var(--r,0deg));opacity:var(--o,.14);z-index:0}
.decor--img{height:auto;object-fit:contain}
.decor--el{filter:drop-shadow(0 6px 10px rgba(53,32,15,.12))}
.el-inline{display:block;width:var(--w,200px);height:auto;pointer-events:none}
.decor--line{fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.decor--fill{fill:currentColor;stroke:none}
.decor--brown{color:var(--sm-brown)}
.decor--blue{color:var(--sm-blue)}
.decor--light{color:var(--sm-on-dark)}
.decor--light.decor--line{stroke-width:2.2}
.section>.wrap,.section>.bg-photo+.wrap{z-index:1}
@media (prefers-reduced-motion:no-preference){
  .decor{animation:decor-in 1.2s ease both}
  @keyframes decor-in{from{opacity:0}to{opacity:var(--o,.14)}}
}

/* ---------- шапка ---------- */
.hdr{position:absolute;left:0;right:0;top:0;z-index:50;color:var(--sm-on-dark)}
.hdr__bar{height:var(--sm-header);padding:0 var(--g);display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:16px;transition:height .25s,background .25s}
.hdr__menu{display:inline-flex;align-items:center;gap:16px;font:var(--sm-nav);text-transform:uppercase;justify-self:start;min-height:44px}
.burger{display:flex;flex-direction:column;gap:8px;width:48px}
.burger span{height:3px;background:currentColor;border-radius:2px}
.hdr__logo{display:flex;color:var(--sm-blue);justify-self:center}
.hdr__logo svg{height:76px;width:auto;overflow:visible;transition:height .25s}
.hdr__left{justify-self:start;display:flex;align-items:center;gap:28px;min-width:0}
.hdr__right{justify-self:end;display:flex;align-items:center;gap:20px}
.hdr__link{font:var(--sm-nav);text-transform:uppercase;min-height:44px;display:inline-flex;align-items:center}
.hdr__link:hover,.hdr__menu:hover{color:#fff}
.hdr__cart{position:relative;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px}
.hdr__cart svg{width:34px;height:34px}
.hdr__cart .cart-count{position:absolute;top:0;right:-4px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--sm-blue);color:var(--sm-on-dark);font-size:12px;font-weight:700;display:none;align-items:center;justify-content:center}
.hdr__cart .cart-count:not(:empty){display:flex}
.hdr.is-stuck{position:fixed}
.hdr.is-stuck .hdr__bar{height:80px;background:rgba(53,32,15,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.hdr.is-stuck .hdr__logo svg{height:48px}
.hdr.is-hidden{transform:translateY(-100%)}
.hdr{transition:transform .3s}

/* ---------- первый экран ---------- */
.hero{position:relative;min-height:640px;height:calc(100vh / var(--zf,1));max-height:900px;overflow:hidden;background:var(--sm-brown-2);color:var(--sm-on-dark);display:flex;flex-direction:column}
.hero .bg-photo img{object-position:50% 50%}
.hero__body{position:relative;z-index:1;flex-grow:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:var(--sm-header) var(--g) 56px;text-align:center}
.hero__lead{max-width:640px;font-size:28px;line-height:1.35;color:rgba(243,231,211,.92)}
.hero__btns{display:flex;flex-wrap:wrap;justify-content:center;gap:20px;padding-top:8px}
.page-hero{position:relative;overflow:hidden;background:var(--sm-brown-2);color:var(--sm-on-dark);padding:calc(var(--sm-header) + 40px) 0 64px}
.page-hero .wrap{position:relative;z-index:1;display:flex;flex-direction:column;gap:20px}
.page-hero .h1{font-size:clamp(48px,calc(7vw / var(--zf,1)),104px)}
.page-hero__lead{max-width:760px;font-size:22px;line-height:1.4;color:rgba(243,231,211,.9)}
.crumbs{display:flex;flex-wrap:wrap;gap:8px;font-size:15px;color:var(--sm-on-dark-muted)}
.crumbs a:hover{color:var(--sm-on-dark)}
.crumbs span[aria-hidden]{opacity:.6}

/* ---------- меню-оверлей ---------- */
.menu{position:fixed;inset:0;z-index:100;background:var(--sm-brown-2);color:var(--sm-on-dark);display:flex;flex-direction:column;visibility:hidden;opacity:0;transition:opacity .3s,visibility 0s .3s;overflow-y:auto}
.menu.is-open{visibility:visible;opacity:1;transition:opacity .3s}
.menu .bg-photo{position:fixed}
.menu .bg-photo::after{background:rgba(43,26,16,.72)}
.menu__bar{position:relative;z-index:1;flex:none}
.menu__body{position:relative;z-index:1;flex-grow:1;padding:8px var(--g) 56px;display:grid;grid-template-columns:1fr auto;align-items:end;gap:40px}
.menu__nav{display:flex;flex-direction:column}
.menu__l2{font:var(--sm-menu-link-2);text-transform:uppercase;color:var(--sm-on-dark-muted);transition:color .2s;width:fit-content}
.menu__l1{font:var(--sm-menu-link);font-size:64px;line-height:1.3;text-transform:uppercase;display:inline-flex;align-items:center;gap:32px;width:fit-content;transition:color .2s}
.menu__l1 svg{width:48px;height:48px;flex-shrink:0;transition:transform .2s}
.menu__l2:hover,.menu__l1:hover{color:#fff}
.menu__l1:hover svg{transform:translateX(8px)}
.menu__gap{height:24px}
.menu__side{display:flex;flex-direction:column;gap:16px;align-items:stretch;min-width:420px}
.menu__phone{height:72px;font-size:21px}
.menu__mess{display:flex;gap:8px;justify-content:flex-end}
.menu__close{display:inline-flex;align-items:center;gap:16px;font:var(--sm-nav);text-transform:uppercase;min-height:44px}
.menu__close svg{width:36px;height:36px}

/* ---------- плавающая «•••» ---------- */
.dots{position:fixed;right:40px;bottom:40px;z-index:60;display:flex;flex-direction:column;align-items:flex-end;gap:12px}
.dots__btn{width:var(--sm-dots);height:var(--sm-dots);border-radius:50%;background:var(--sm-blue);color:var(--sm-on-dark);display:flex;align-items:center;justify-content:center;transition:background .2s,transform .2s}
.dots__btn:hover{background:var(--sm-blue-2)}
.dots__btn svg{width:30px;height:30px}
.dots__list{display:flex;flex-direction:column;gap:8px;align-items:flex-end;visibility:hidden;opacity:0;transform:translateY(8px);transition:opacity .2s,transform .2s,visibility 0s .2s}
.dots.is-open .dots__list{visibility:visible;opacity:1;transform:none;transition:opacity .2s,transform .2s}
.dots__item{height:52px;padding:0 22px;display:inline-flex;align-items:center;gap:10px;border-radius:var(--sm-r-pill);background:var(--sm-brown);color:var(--sm-on-dark);font-family:var(--sm-font-display);font-size:16px;font-weight:600;text-transform:uppercase;letter-spacing:.02em;white-space:nowrap}
.dots__item:hover{background:var(--sm-brown-2)}
.dots__item svg{width:20px;height:20px}

/* ---------- подвал ---------- */
.ftr{position:relative;overflow:hidden;border-radius:var(--r-panel) var(--r-panel) 0 0;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--sm-brown-2) 0,var(--sm-brown-2) 110px,var(--sm-brown) 110px)}
.ftr__giant{height:110px;position:relative;z-index:1}
.ftr__giant span{position:absolute;left:0;right:0;bottom:-120px;font-family:var(--sm-font-display);font-size:240px;font-weight:800;line-height:1;letter-spacing:.02em;text-transform:uppercase;color:var(--sm-brown);text-align:center;white-space:nowrap}
.ftr__body{position:relative;padding:104px 0 40px;background:var(--sm-brown);color:var(--sm-on-dark)}
.ftr__body>.wrap{display:flex;flex-direction:column;gap:48px}
.ftr__nav{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.ftr__links{display:flex;flex-direction:column;gap:14px}
.ftr__link{font:var(--sm-footer-link);font-size:36px;line-height:1.15;text-transform:uppercase;color:var(--sm-on-dark-muted);width:fit-content;display:inline-flex;align-items:center;gap:18px;transition:color .2s}
.ftr__link svg{width:34px;height:34px;stroke-width:1.4}
.ftr__link:hover{color:var(--sm-on-dark)}
.ftr__right{display:flex;flex-direction:column;gap:32px}
.ftr__cta{align-self:flex-start;min-width:360px}
.ftr__info{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px;font-size:16px;line-height:1.45;color:var(--sm-on-dark-muted)}
.ftr__info>div{display:flex;flex-direction:column;gap:4px}
.ftr__info a:hover{color:var(--sm-on-dark)}
.ftr__logo{color:var(--sm-on-dark-muted);display:flex}
.ftr__logo svg{height:60px;width:auto}
.ftr__bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;font-size:14px;color:var(--sm-on-dark-muted);padding-top:24px;border-top:1px solid rgba(243,231,211,.15)}

/* ---------- модалка ---------- */
.modal{position:fixed;inset:0;z-index:120;background:rgba(43,26,16,.6);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:none;align-items:center;justify-content:center;padding:24px}
.modal.is-open{display:flex}
.modal__box{position:relative;width:100%;max-width:520px;max-height:calc(calc(100vh / var(--zf,1)) - 48px);overflow:auto;padding:40px 36px 36px;border-radius:var(--sm-r-card-lg);border:1px solid var(--sm-line);background:var(--sm-sand-2);display:flex;flex-direction:column;gap:18px}
.modal__x{position:absolute;right:16px;top:16px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--sm-brown)}
.modal__x:hover{background:var(--sm-sand)}
.modal__x svg{width:26px;height:26px}

/* ---------- cookie ---------- */
.cookie{position:fixed;left:24px;bottom:24px;z-index:70;max-width:520px;padding:20px 22px;border-radius:22px;background:var(--sm-brown);color:var(--sm-on-dark);display:none;flex-direction:column;gap:14px;font-size:14px;line-height:1.5}
.cookie.is-on{display:flex}
.cookie a{text-decoration:underline}

/* ---------- toast ---------- */
.toast-container{position:fixed;left:50%;bottom:32px;transform:translateX(-50%);z-index:130;display:flex;flex-direction:column;gap:8px}
.toast{padding:14px 22px;border-radius:var(--sm-r-pill);background:var(--sm-brown);color:var(--sm-on-dark);font-size:15px}

/* ---------- аккордеон ---------- */
.acc__item{border-top:1px solid var(--sm-line)}
.acc__item:last-child{border-bottom:1px solid var(--sm-line)}
.acc__q{width:100%;min-height:68px;padding:16px 4px;display:flex;align-items:center;justify-content:space-between;gap:20px;text-align:left;font-size:20px;font-weight:600;color:var(--sm-text)}
.acc__sign{width:40px;height:40px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--sm-line);font-size:22px;font-weight:400;transition:background .2s,color .2s}
.acc__q[aria-expanded="true"] .acc__sign{background:var(--sm-blue);color:var(--sm-on-dark)}
.acc__a{padding:0 64px 20px 4px;font-size:17px;line-height:1.55;color:var(--sm-muted)}
.acc__a[hidden]{display:none}

/* ---------- пусто / скелетон ---------- */
.empty{padding:48px 28px;border:1px dashed var(--sm-line);border-radius:var(--sm-r-card);display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center;font-size:18px}
.skel{min-height:210px;border-radius:var(--sm-r-card);border:1px solid var(--sm-line-soft);background:linear-gradient(90deg,var(--sm-sand-2) 0,#fff8ec 50%,var(--sm-sand-2) 100%);background-size:200% 100%}
@media (prefers-reduced-motion:no-preference){.skel{animation:skel 1.2s linear infinite}@keyframes skel{to{background-position:-200% 0}}}

/* ======================= адаптив ======================= */
@media (max-width:1280px){
  :root{--g:40px;--h1:120px;--h2:48px;--h2-m:48px;--h2-s:46px;--h2-xl:72px}
  .grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid-3{gap:24px}
  .seg--wrap{flex-wrap:wrap;gap:8px}
  .seg--wrap .seg__btn{flex:1 1 calc(33.33% - 8px);height:60px;margin:0;border-radius:36px!important}
  .menu__l1{font-size:52px}.menu__l2{font-size:42px}
  .ftr__link{font-size:30px}
  .ftr__link svg{width:28px;height:28px}
  .ftr__giant span{font-size:200px;bottom:-100px}
  .ftr__body{padding-top:88px}
}
@media (max-width:960px){
  :root{--h1:84px;--h2:40px;--h2-m:40px;--h2-s:40px;--h2-xl:56px;--dk:.42;--sec:52px}
  .hero{min-height:600px}
  .section--tall{padding:64px 0}
  .seg--wrap .seg__btn{flex:1 1 calc(33.33% - 8px);height:56px;padding:0 12px;font-size:16px}
  .section__head,.cols{grid-template-columns:1fr;gap:28px}
  .grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lead,.hero__lead{font-size:22px}
  .t-lg{font-size:18px}
  .hdr__link{font-size:20px}
  .hdr__menu{font-size:20px}
  .hdr__logo svg{height:52px}
  .menu__body{grid-template-columns:1fr;align-items:start}
  .menu__side{min-width:0}
  .menu__mess{justify-content:flex-start}
  .ftr__nav{grid-template-columns:1fr}
  .ftr__cta{align-self:stretch;min-width:0}
  .ftr__info{grid-template-columns:1fr 1fr}
  .ph--arch{border-radius:260px 260px 24px 24px}
  .ph--leaf,.ph--leaf-r{border-radius:24px 120px 24px 120px}
  .dots{right:24px;bottom:24px}
  .decor--el{display:none}
  .orn__img{width:170px}
  .steps__pic{width:60px;height:60px}
}
@media (max-width:600px){
  :root{--g:20px;--h1:56px;--h2:32px;--h2-m:32px;--h2-s:32px;--h2-xl:40px;--dk:.34;--sec:40px;--r-panel:0px}
  .h2--xs{font-size:30px}
  .section>.wrap{gap:26px}
  .section--tall{padding:48px 0}
  .section__head,.cols{gap:18px}
  .h3{font-size:24px}
  .lead,.hero__lead{font-size:19px}
  .page-hero__lead{font-size:18px}
  .t-lg{font-size:17px}
  .hero{min-height:560px;height:calc(100svh / var(--zf,1));max-height:760px}
  .hero__body{gap:20px;padding-bottom:72px}
  .grid-4,.grid-3,.grid-2{grid-template-columns:1fr;gap:12px}
  .btn{height:60px;font-size:16px;padding:0 24px}
  .btn--xl,.btn--lg,.btn--wide{width:100%;min-width:0;font-size:17px}
  .hero__btns{flex-direction:column;align-items:stretch;width:100%}
  .btn--sm{height:48px;font-size:14px;padding:0 16px}
  .tile{flex-wrap:wrap}
  .card{padding:22px 20px}
  .card--lg{padding:24px 20px}
  .seg--scroll{overflow-x:auto;scrollbar-width:none;margin:0 calc(-1 * var(--g));padding:0 var(--g);gap:8px}
  .seg--scroll::-webkit-scrollbar{display:none}
  .seg--scroll .seg__btn{flex:0 0 auto;height:52px;padding:0 20px;font-size:15px;margin:0;border-radius:26px!important;white-space:nowrap}
  .seg--scroll{flex-wrap:nowrap}
  .seg--wrap:not(.seg--scroll) .seg__btn{flex:1 1 calc(50% - 8px);height:56px;font-size:15px}
  .fields-row{flex-direction:column}
  .hdr__bar{height:72px;grid-template-columns:auto 1fr auto}
  .hdr.is-stuck .hdr__bar{height:64px}
  .hdr__menu span.caps,.hdr__link--contacts{display:none}
  .burger{width:32px;gap:6px}
  .burger span{height:2px}
  .hdr__logo svg,.hdr.is-stuck .hdr__logo svg{height:40px}
  .hdr__right{gap:4px}
  .page-hero{padding:104px 0 40px}
  .menu__l1{font-size:40px;gap:16px;line-height:1.2;padding:4px 0}
  .menu__l1 svg{width:30px;height:30px}
  .menu__l2{font-size:32px;line-height:1.35}
  .menu__close .caps{display:none}
  .ftr{background:linear-gradient(180deg,var(--sm-brown-2) 0,var(--sm-brown-2) 60px,var(--sm-brown) 60px)}
  .ftr__giant{height:60px}
  .ftr__giant span{font-size:104px;bottom:-52px}
  .ftr__body{padding:60px 0 32px}
  .ftr__body>.wrap{gap:32px}
  .ftr__links{gap:12px}
  .ftr__link{font-size:22px;gap:8px}
  .ftr__link svg{width:22px;height:22px}
  .ftr__right{gap:24px}
  .ftr__cta{align-self:stretch}
  .ftr__info{gap:20px}
  .ftr__info{grid-template-columns:1fr;font-size:15px}
  .dots{right:16px;bottom:16px}
  .dots__btn{width:56px;height:56px}
  .decor{--s:150px!important;animation:none;opacity:calc(var(--o,.14) * .8)}
  .decor+.decor{display:none}
  .grid-4--m2{grid-template-columns:1fr 1fr;gap:10px}
  .grid-4--m2 .tile{flex-wrap:nowrap;min-height:64px;padding:10px 6px 10px 14px;gap:4px;border-radius:16px}
  .grid-4--m2 .tile__title{font-size:15px;line-height:1.25}
  .grid-4--m2 .tile__sub{font-size:13px}
  .grid-4--m2 .tile__add{width:36px;height:36px}
  .grid-4--m2 .tile__add svg{width:26px;height:26px}
  .acc__q{font-size:17px;min-height:60px;padding:14px 0}
  .acc__a{padding:0 0 20px}
  .plate{flex-direction:column;align-items:flex-start;padding:20px}
  .tile{min-height:72px}
  .cookie{left:12px;right:12px;bottom:12px}
  .modal{padding:12px}
  .modal__box{padding:32px 20px 24px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}

/* ======================= блоки главной ======================= */
.ico--30{width:30px;height:30px;stroke-width:1.4}
.programs{position:relative;margin-top:36px;padding:28px 0 36px}
.programs__in{position:relative;display:flex;flex-direction:column;gap:28px;padding-left:var(--g);padding-right:var(--g);max-width:calc(1440px + 2 * var(--g));margin:0 auto}
.programs__pane .card__title a:hover{color:var(--sm-blue-2)}
.tile__add{display:flex;color:var(--sm-brown);width:44px;height:44px;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0;transition:color .2s,background .2s}
.tile__add:hover{color:var(--sm-blue)}
.tile--link{transition:background .2s}
.tile--link:hover{background:#fff}
.tile--link .tile__price{color:var(--sm-text)}
.incl__ph{height:600px}
.incl__cta{padding-right:230px}

.masters__head{display:flex;align-items:flex-end;justify-content:space-between;gap:40px}
.round-btn{width:64px;height:64px;border:1px solid rgba(243,231,211,.5);border-radius:50%;color:var(--sm-on-dark);display:flex;align-items:center;justify-content:center;transition:opacity .2s,background .2s}
.round-btn svg{width:26px;height:26px}
.round-btn--blue{background:var(--sm-blue);border-color:var(--sm-blue)}
.round-btn:hover{background:rgba(243,231,211,.12)}
.round-btn--blue:hover{background:var(--sm-blue-2)}
.round-btn:disabled{opacity:.4;cursor:default;background:transparent;border-color:rgba(243,231,211,.5)}
.carousel__viewport{margin:0 calc(-1 * var(--g))}
.carousel__track{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:0 var(--g);scroll-padding:0 var(--g)}
.carousel__track::-webkit-scrollbar{display:none}
.master{flex-shrink:0;width:304px;scroll-snap-align:start;padding:10px 10px 22px;display:flex;flex-direction:column;gap:14px;border-radius:26px;border:1px solid rgba(243,231,211,.3);background:rgba(43,26,16,.55)}
.master__ph{position:relative;height:300px;border-radius:18px;overflow:hidden;background:rgba(43,26,16,.6);display:flex;align-items:center;justify-content:center}
.master__ph img{width:100%;height:100%;object-fit:cover;object-position:50% 20%;filter:saturate(.85)}
.master__ini{width:110px;height:110px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--sm-blue);color:var(--sm-blue);font-family:var(--sm-font-display);font-size:48px;font-weight:700}
.master__b{padding:0 12px;display:flex;flex-direction:column;gap:10px;flex-grow:1}
.master__name{font-family:var(--sm-font-display);font-size:24px;font-weight:700;text-transform:uppercase;color:var(--sm-on-dark)}
.master__bio{font-size:15px;line-height:1.5;color:rgba(243,231,211,.85);margin-top:4px}
.master .btn{margin-top:auto;align-self:stretch}

.vipcalc__total{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:20px;padding-top:24px;border-top:1px solid var(--sm-line-soft)}
.vipcalc__sum{font-family:var(--sm-font-display);font-size:44px;font-weight:700;line-height:1;color:var(--sm-blue)}

.subs{padding:34px 32px 32px;border-radius:26px}
.subs__pct{font-family:var(--sm-font-display);font-size:72px;font-weight:700;line-height:1}
.subs .btn{align-self:flex-start;margin-top:10px}

.cert{padding:88px 0;display:flex;align-items:center}
.cert>.wrap{width:100%}
.cert::before,.cert::after{content:"";position:absolute;z-index:1;width:150px;height:182px;background:url(/static/samui/decor/corner.webp) center/contain no-repeat;opacity:.7;pointer-events:none}
.cert::before{right:22px;top:22px;transform:rotate(180deg)}
.cert::after{right:22px;bottom:22px;transform:scaleX(-1)}
.cert__lead{font-size:22px;line-height:1.4;color:rgba(243,231,211,.9)}
.cert__promo{display:flex;align-items:center;gap:16px;padding:18px 22px;border-radius:20px;border:1px solid rgba(243,231,211,.35);background:rgba(43,26,16,.45);font-size:16px;line-height:1.45}

.amen{padding:24px 20px;display:flex;flex-direction:column;gap:16px;border-radius:22px;border:1px solid var(--sm-line);background:var(--sm-sand-2)}
.amen__ic{width:52px;height:52px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--sm-blue);color:var(--sm-on-dark)}
.amen__t{font-size:18px;font-weight:600}
.plate>.ico{color:var(--sm-on-dark);width:28px;height:28px}

.perk{padding:30px 28px 28px;border-radius:26px;gap:12px}
.perk__d{font-size:15.5px;line-height:1.5;color:var(--sm-muted);flex-grow:1}
.perk .btn{align-self:flex-start}

.collage{display:grid;grid-template-columns:1.3fr 1fr;grid-template-rows:260px 260px;gap:16px}
.collage__main{grid-row:1/-1}
.collage__main img{height:100%;border-radius:300px 300px 24px 24px}
.collage img{height:100%;width:100%;object-fit:cover}
.collage picture{display:block;height:100%}
.collage img[class*="leaf"]{filter:saturate(.85)}
.reviews{padding:26px 28px;border-radius:24px;background:var(--sm-brown);display:flex;flex-direction:column;gap:16px}
.reviews__h{font-family:var(--sm-font-display);font-size:22px;font-weight:500;text-transform:uppercase;line-height:1.25}
.reviews__list{display:flex;flex-direction:column;gap:16px}
.review blockquote{font-size:16px;line-height:1.5;color:rgba(243,231,211,.9)}
.review figcaption{font-size:14px;color:var(--sm-on-dark-muted);margin-top:6px}

.faq__el{--w:210px;margin-top:20px}
.faq{display:grid;grid-template-columns:1fr 1.4fr;gap:48px;align-items:start}

.find{display:grid;grid-template-columns:1.25fr 1fr;gap:48px;align-items:start}
.find__map{height:360px;border-radius:20px;border:1px solid var(--sm-line);overflow:hidden;background:var(--sm-sand-2)}
.find__map iframe{width:100%;height:100%;border:0;filter:sepia(.25) saturate(.8)}
.find .btn svg{width:20px;height:20px}

@media (max-width:1280px){
  .collage{grid-template-rows:230px 230px}
  .incl__ph{height:540px}
}
@media (max-width:960px){
  .masters__head{flex-direction:column;align-items:flex-start;gap:24px}
  .faq,.find{grid-template-columns:1fr;gap:32px}
  .faq__el{display:none}
  .incl__cta{padding-right:0}
  .incl__ph{height:460px}
  .cert{padding:64px 0}
  .cert__lead{font-size:19px}
}
@media (max-width:600px){
  .programs{margin-top:20px;padding:16px 0 24px}
  .programs__in{gap:18px}
  .incl__ph{height:340px}
  .master{width:calc(82vw / var(--zf,1));max-width:320px}
  .master__ph{height:280px}
  .carousel__nav{display:none}
  .subs__pct{font-size:56px}
  .collage{grid-template-rows:160px 160px;gap:10px}
  .collage__main img{border-radius:160px 160px 20px 20px}
  .ph--leaf-s{border-radius:16px 64px 16px 64px}
  .ph--leaf-sr{border-radius:64px 16px 64px 16px}
  .vipcalc__sum{font-size:36px}
  .vipcalc__total .btn{width:100%}
  .find__map{height:240px}
  .reviews{padding:22px 20px}
  .amen{padding:14px 12px;gap:10px}
  .amen__ic{width:40px;height:40px;flex-shrink:0}
  .amen__t{font-size:15px;line-height:1.3}
  .cert{padding:48px 0}
  .cert::before{width:84px;height:102px;right:10px;top:10px}
  .cert::after{display:none}
}
.seg--sm .seg__btn[aria-pressed="true"]{background:var(--sm-blue);color:var(--sm-on-dark)}
.seg--sm .seg__btn:not([aria-pressed="true"]):hover{background:#fff}
.master .btn{font-size:16px;padding:0 16px}
@media (max-width:600px){
  .page-hero .h1{font-size:min(48px,calc(8.6vw / var(--zf,1)));overflow-wrap:anywhere}
  .h2--long{font-size:clamp(22px,calc(7vw / var(--zf,1)),32px)}
}

/* ======================= единый вид карточек (2026-10) =======================
   вместо жёсткой тёмной обводки — тонкая песочная линия и радиус 26, как в каталоге, корзине и акциях */
.card,.tile,.amen{border-color:var(--sm-line-soft)}
.card{border-radius:26px}
.card--blue{border-color:var(--sm-blue)}
.tile--link:hover,.card--hover:hover{border-color:var(--sm-line)}
.find__map{border-color:var(--sm-line-soft);border-radius:26px}
.acc__item{border-top-color:var(--sm-line-soft)}
.acc__item:last-child{border-bottom-color:var(--sm-line-soft)}

/* ======================= появление блоков при прокрутке (2026-10) ======================= */
@media (prefers-reduced-motion:no-preference){
  .rv{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--rv,0) * 70ms)}
  .rv.is-in{opacity:1;transform:none}
}
/* ======================= телефон: компактные сетки вместо длинных столбцов ======================= */
@media (max-width:600px){
  .grid-4--perks{grid-template-columns:1fr 1fr;gap:10px!important}
  .grid-4--perks .perk{padding:16px 14px;gap:6px;border-radius:18px}
  .grid-4--perks .big-num{font-size:34px}
  .grid-4--perks .card__title{font-size:15px}
  .grid-4--perks .perk__d{font-size:12.5px;line-height:1.4}
  .grid-4--perks .btn{height:40px;font-size:11px;padding:0 12px;white-space:normal;line-height:1.1}
  .grid-2--m2{grid-template-columns:1fr 1fr;gap:10px}
  .grid-2--m2 .subs{padding:16px 14px;border-radius:18px;gap:6px}
  .grid-2--m2 .h3{font-size:15px}
  .grid-2--m2 .subs__pct{font-size:38px}
  .grid-2--m2 .t-md{font-size:12.5px;line-height:1.4}
  .grid-2--m2 .btn{height:40px;font-size:11px;padding:0 12px;white-space:normal;line-height:1.1;margin-top:4px}
}

/* плавающая «•••»: невидимый столбец списка не должен перехватывать нажатия по странице */
.dots{pointer-events:none}
.dots__btn,.dots.is-open .dots__list{pointer-events:auto}

/* ===== правки заказчика 06.10.2026: заявка в шапке, флаг, музыка, быстрый просмотр, слоны и надпись в подвале ===== */
.flag{display:inline-block;width:1.5em;height:1em;border-radius:2px;vertical-align:-.12em;margin-right:.55em;box-shadow:0 0 0 1px rgba(43,26,16,.14);flex:none}
/* завитки на блоке сертификатов убраны — не по брендбуку */
.cert::before,.cert::after{display:none}

/* шапка: «оставить заявку» */
.hdr__ask{height:48px;padding:0 22px;border-radius:var(--sm-r-pill);background:var(--sm-blue);color:var(--sm-on-dark);font:600 15px/1 var(--sm-font-display);letter-spacing:.03em;text-transform:uppercase;white-space:nowrap;transition:background .2s}
.hdr__ask:hover{background:var(--sm-blue-2)}
.hdr.is-stuck .hdr__ask{height:44px}
button.menu__l1{text-align:left}
.dots__item--ask{background:var(--sm-blue)}
.dots__item--ask:hover{background:var(--sm-blue-2)}
.ftr__ctas{display:flex;flex-wrap:wrap;gap:12px}
.ftr__ctas .ftr__cta{min-width:0;flex:1 1 250px;white-space:nowrap}

/* модалка: переключатель «записаться в spa» / «оставить заявку» */
.modal__switch{margin-right:40px}
.modal__switch .seg__btn{height:46px;padding:0 10px;font:600 13px/1.1 var(--sm-font-display);text-transform:uppercase;letter-spacing:.02em}
[data-mode-only][hidden]{display:none}
textarea.input.input--area{min-height:76px}

/* быстрый просмотр программы */
.modal--quick .modal__box{max-width:940px;padding:0;gap:0;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr)}
.quick__ph{position:relative;min-height:420px;background:var(--sm-sand)}
.quick__ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.quick__b{padding:40px 36px 30px;display:flex;flex-direction:column;gap:14px;min-width:0}
.quick__kicker{font:600 12px/1.3 var(--sm-font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--sm-muted);padding-right:44px}
.quick__title{padding-right:30px;outline:none}
.quick__price{font:700 34px/1 var(--sm-font-display);color:var(--sm-blue)}
.quick__price s{font:400 17px/1 var(--sm-font-text);color:var(--sm-muted);margin-left:10px}
.quick__tags{display:flex;flex-wrap:wrap;gap:6px}
.quick__tags:empty{display:none}
.quick__tags span{height:28px;padding:0 12px;border-radius:var(--sm-r-pill);background:var(--sm-sand);font-size:13px;display:inline-flex;align-items:center}
.quick__desc{font-size:16px;line-height:1.55;white-space:pre-line}
.quick__desc:empty{display:none}
.quick__h{font:600 12px/1.3 var(--sm-font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--sm-muted);margin-bottom:8px}
.quick__list{display:flex;flex-direction:column;gap:6px;font-size:15px;line-height:1.45}
.quick__list li{position:relative;padding-left:18px}
.quick__list li::before{content:"";position:absolute;left:0;top:.55em;width:7px;height:7px;border-radius:50%;background:var(--sm-blue)}
.quick__acts{display:flex;flex-wrap:wrap;gap:10px;padding-top:6px}
.quick__acts .btn{flex:1 1 180px;height:54px;font-size:15px;padding:0 16px}
.quick.is-loading .quick__b{opacity:.45}
@media (max-width:760px){
  .modal--quick .modal__box{grid-template-columns:minmax(0,1fr)}
  .quick__ph{min-height:0;aspect-ratio:16/10}
  .quick__b{padding:22px 20px 22px}
  .quick__price{font-size:28px}
}

/* музыка */
.music{position:fixed;left:40px;bottom:40px;z-index:60;width:52px;height:52px;border-radius:50%;background:var(--sm-brown);color:var(--sm-on-dark);display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px rgba(43,26,16,.28);transition:background .2s,transform .2s}
.music:hover{transform:scale(1.06)}
/* вторая кнопка — сменить мелодию; видна, пока музыка играет */
.music-next{position:fixed;left:82px;bottom:78px;z-index:61;width:28px;height:28px;border-radius:50%;background:var(--sm-sand-2);color:var(--sm-brown);box-shadow:0 0 0 1.4px var(--sm-blue),0 4px 10px rgba(43,26,16,.28);font-family:var(--sm-font-display);font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;transition:transform .2s}
.music-next[hidden]{display:none}
.music-next:hover{transform:scale(1.12)}
/* оболочка для непрерывной музыки: страница, где её включили, прячется, сайт идёт во фрейме на весь экран */
html.is-shell,html.is-shell body{overflow:hidden!important;height:100%}
html.is-shell body>*:not(#music-shell){display:none!important}
#music-shell{position:fixed;inset:0;z-index:2147483000;width:100%;height:100%;border:0;background:var(--sm-sand)}
.music svg{width:22px;height:22px}
.music__bars{display:none;align-items:flex-end;gap:3px;height:18px}
.music__bars i{display:block;width:3px;height:100%;border-radius:2px;background:currentColor;transform-origin:50% 100%}
.music[aria-pressed="true"]{background:var(--sm-blue)}
.music[aria-pressed="true"] svg{display:none}
.music[aria-pressed="true"] .music__bars{display:flex}
@media (prefers-reduced-motion:no-preference){
  .music[aria-pressed="true"] .music__bars i{animation:mbar .9s ease-in-out infinite alternate}
  .music__bars i:nth-child(2){animation-delay:-.3s!important}.music__bars i:nth-child(3){animation-delay:-.6s!important}
  @keyframes mbar{from{transform:scaleY(.3)}to{transform:scaleY(1)}}
}
body.is-locked .music{display:none}

/* подвал: слоны крупнее и все с поднятым хоботом, надпись SAMUI видна целиком */
.caravan{gap:clamp(10px,calc(2vw / var(--zf,1)),30px);padding-top:28px}
.caravan img{height:clamp(84px,calc(10.5vw / var(--zf,1)),158px)}
.caravan img:first-child{order:3;height:clamp(96px,calc(12vw / var(--zf,1)),182px)}
.caravan img:last-child{order:-1;height:clamp(62px,calc(7.6vw / var(--zf,1)),114px)}
.ftr{--fs:clamp(76px,calc(17vw / var(--zf,1)),244px);--gh:calc(var(--fs) * .93);background:linear-gradient(180deg,var(--sm-brown-2) 0,var(--sm-brown-2) var(--gh),var(--sm-brown) var(--gh))}
.ftr__giant{height:var(--gh)}
.ftr__giant span{font-size:var(--fs);bottom:calc(var(--fs) * -.075)}
.ftr__body{padding-top:72px}

@media (max-width:1280px){
  .hdr__ask{height:44px;padding:0 16px;font-size:13px}
}
@media (max-width:960px){
  .music{left:24px;bottom:24px}
  .music-next{left:66px;bottom:62px}
}
@media (max-width:760px){
  .hdr__ask{display:none}
}
@media (max-width:600px){
  .music{left:16px;bottom:16px;width:46px;height:46px}
  .music-next{left:50px;bottom:48px;width:26px;height:26px}
  .ftr__body{padding-top:44px}
}

/* ===== подвал: вид 2026-10-07 — светлая карточка «ждём вас», три столбца ссылок, компактная нижняя строка ===== */
.ftr__body{padding:52px 0 26px;overflow:clip}
.ftr__body>.wrap{position:relative;z-index:1;gap:44px}
.ftr__card{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1.05fr);gap:40px;align-items:center;padding:38px 44px;border-radius:36px;background:var(--sm-sand-2);color:var(--sm-text);box-shadow:0 24px 50px -28px rgba(0,0,0,.6)}
.ftr__where{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.ftr__kicker{display:flex;align-items:center;font:600 12px/1.3 var(--sm-font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--sm-muted)}
.ftr__h{font:700 clamp(24px,calc(2.35vw / var(--zf,1)),34px)/1.1 var(--sm-font-display);text-transform:uppercase}
.ftr__addr{display:inline-flex;align-items:flex-start;gap:10px;font-size:16px;line-height:1.4}
.ftr__addr svg{color:var(--sm-blue);margin-top:1px}
.ftr__addr .muted{font-size:14px}
.ftr__addr:hover{color:var(--sm-blue-2)}
.ftr__tel{display:flex;flex-direction:column;gap:6px}
.ftr__phone{font:700 clamp(21px,calc(1.95vw / var(--zf,1)),28px)/1.25 var(--sm-font-display);white-space:nowrap;transition:color .2s}
.ftr__phone:hover,.ftr__mail:hover{color:var(--sm-blue-2)}
.ftr__mail{font-size:16px;color:var(--sm-muted);margin-top:6px;width:fit-content}
.ftr__act{display:flex;flex-direction:column;gap:12px}
.ftr__act .btn{height:58px;width:100%;font-size:16px;padding:0 16px}
.ftr__soc{display:flex;gap:10px;padding-top:2px}
.ftr__soc a{flex:1 1 0;height:48px;border-radius:var(--sm-r-pill);border:1px solid var(--sm-line-soft);display:flex;align-items:center;justify-content:center;color:var(--sm-brown);transition:background .2s,color .2s,border-color .2s}
.ftr__soc a:hover{background:var(--sm-brown);border-color:var(--sm-brown);color:var(--sm-on-dark)}
.ftr__soc svg{width:22px;height:22px}

.ftr__cols{display:grid;grid-template-columns:minmax(0,1.35fr) repeat(3,minmax(0,1fr));gap:40px;align-items:start}
.ftr__brand{display:flex;flex-direction:column;gap:14px;max-width:360px;font-size:15px;line-height:1.5;color:var(--sm-on-dark-muted)}
.ftr__logo svg{height:64px}
.ftr__logo:hover{color:var(--sm-on-dark)}
.ftr__legal{font-size:13px;line-height:1.55;opacity:.85}
.ftr__col{display:flex;flex-direction:column;align-items:flex-start;gap:11px}
.ftr__cap{font:600 12px/1.3 var(--sm-font-display);letter-spacing:.12em;text-transform:uppercase;color:var(--sm-on-dark-muted);opacity:.8;padding-bottom:6px}
.ftr__a{font:600 18px/1.25 var(--sm-font-display);text-transform:uppercase;letter-spacing:.01em;color:var(--sm-on-dark);transition:color .2s}
.ftr__a:hover{color:var(--sm-blue)}
.ftr__a--sm{font:400 14.5px/1.4 var(--sm-font-text);text-transform:none;letter-spacing:0;color:var(--sm-on-dark-muted)}
.ftr__a--sm:hover{color:var(--sm-on-dark)}
.ftr__bottom{padding:20px 76px 0;align-items:center}   /* по углам — плавающие кнопки музыки и «•••» */
.ftr__pol{display:flex;flex-wrap:wrap;gap:6px 24px}
.ftr__bottom a:hover{color:var(--sm-on-dark)}
@media (max-width:1100px){
  .ftr__card{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px 32px;padding:32px}
  .ftr__where{grid-column:1/-1}
  .ftr__cols{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
  .ftr__brand{grid-column:1/-1;max-width:none}
  .ftr__a{font-size:16px}
}
@media (max-width:600px){
  .ftr__body{padding:28px 0 22px}
  .ftr__body>.wrap{gap:32px}
  .ftr__card{grid-template-columns:minmax(0,1fr);gap:22px;padding:26px 20px 22px;border-radius:26px}
  .ftr__phone{font-size:24px}
  .ftr__cols{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px 20px}
  .ftr__col:last-child{grid-column:1/-1}
  .ftr__a{font-size:15px}
  .ftr__logo svg{height:54px}
  .ftr__bottom{flex-direction:column;align-items:center;text-align:center;gap:8px;padding:18px 0 62px}
  .ftr__pol{justify-content:center}
}
.ftr__h{font-size:clamp(21px,calc(2.05vw / var(--zf,1)),30px)}
.ftr__h span{white-space:nowrap}
@media (max-width:600px){ .ftr__h{font-size:clamp(18px,calc(5.6vw / var(--zf,1)),24px)} }

/* ===== «живые» элементы заказчика (вторая партия 07.10) ===== */
.orn{padding:0;margin:-6px 0}
.orn__img{width:120px;opacity:1;filter:drop-shadow(0 10px 14px rgba(53,32,15,.18))}
.decor[src*="/lantern."]{filter:drop-shadow(0 0 34px rgba(255,190,96,.55));z-index:1}
.decor[src*="/scroll."],.decor[src*="/compress."],.decor[src*="/lotus-real."],.decor[src*="/teak-sit."]{filter:drop-shadow(0 14px 18px rgba(43,26,16,.28))}
.caravan img:last-child{height:clamp(58px,calc(7vw / var(--zf,1)),104px)}
@media (max-width:960px){ .cert .decor[src*="/scroll."],.cert .decor[src*="/lotus-real."]{display:none} }
@media (max-width:600px){ .orn__img{width:84px} .decor[src*="/lantern."]{--s:84px!important} .ftr .decor[src*="/lantern."]{display:none} }
@media (prefers-reduced-motion:no-preference){
  .decor[src*="/lantern."]{animation:decor-in 1.2s ease both,lantern-glow 4s ease-in-out 1.2s infinite alternate}
  @keyframes lantern-glow{from{filter:drop-shadow(0 0 22px rgba(255,190,96,.4))}to{filter:drop-shadow(0 0 44px rgba(255,200,110,.75))}}
}

/* фильтры по тегам */
.flt{border:1px solid var(--sm-line-soft);border-radius:26px;background:var(--sm-sand-2)}
.flt__sum{list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;height:60px;padding:0 24px;font:600 15px/1 var(--sm-font-display);text-transform:uppercase;letter-spacing:.03em}
.flt__sum::-webkit-details-marker{display:none}
.flt__n{min-width:24px;height:24px;padding:0 7px;border-radius:12px;background:var(--sm-blue);color:var(--sm-on-dark);font-size:13px;display:inline-flex;align-items:center;justify-content:center}
.flt__n[hidden]{display:none}
.flt__chev{margin-left:auto;display:flex;rotate:90deg;transition:rotate .2s}
.flt__chev svg{width:22px;height:22px}
.flt[open] .flt__chev{rotate:-90deg}
.flt__body{padding:4px 24px 20px;display:flex;flex-direction:column;gap:12px}
.flt__g{display:grid;grid-template-columns:128px minmax(0,1fr);gap:12px;align-items:start}
.flt__gl{font:600 12px/1.2 var(--sm-font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--sm-muted);padding-top:13px}
.flt__chips{display:flex;flex-wrap:wrap;gap:8px}
.flt__chip{height:38px;padding:0 16px;font-size:14.5px;border-color:var(--sm-line-soft);background:transparent}
.flt__chip[aria-pressed="true"],.flt__chip[aria-pressed="true"]:hover{background:var(--sm-blue);border-color:var(--sm-blue);color:var(--sm-on-dark)}
.flt__foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;min-height:44px;padding-top:4px}

@media (max-width:600px){
  .flt__sum{height:54px;padding:0 18px;font-size:13px}
  .flt__body{padding:2px 18px 18px}
  .flt__g{grid-template-columns:minmax(0,1fr);gap:6px}
  .flt__gl{padding-top:0}
  .flt__chip{height:36px;padding:0 13px;font-size:13.5px}
}

/* онлайн-запись через Salyu (включается флагом ONLINE_BOOKING в site_config.py) */
.modal__online{display:flex;flex-direction:column;gap:10px}
.modal__online .btn{height:56px;gap:10px;font-size:15px}
.modal__or{font-size:13px;color:var(--sm-muted);text-align:center}

/* мастера: пять звёзд и «ТОП-мастер» отдельной строкой над именем */
.stars5{display:inline-flex;gap:3px;color:#E9B95A}
.stars5 svg{width:18px;height:18px}
.master__top{display:block;font-size:.62em;letter-spacing:.1em;color:var(--sm-blue);margin-bottom:2px}

/* карта: подпись «мы здесь» поверх, метка салона стоит на карте постоянно */
.find__map{position:relative}
.find__pin{position:absolute;left:12px;top:12px;z-index:1;display:flex;align-items:center;gap:10px;padding:9px 16px 9px 12px;border-radius:16px;background:var(--sm-brown);color:var(--sm-on-dark);box-shadow:0 6px 18px rgba(43,26,16,.28);font-size:13px;line-height:1.3;max-width:calc(100% - 24px)}
.find__pin b{display:block;font:700 13px/1.2 var(--sm-font-display);letter-spacing:.04em;text-transform:uppercase}
.find__pin .ico{flex:none;width:22px;height:22px;color:#E9B95A}
.find__pin:hover{background:var(--sm-brown-2)}

/* ===== правки 2026-10-10 (2): дата в формах заявки, просмотр фото, противопоказания ===== */
.fields-row>.field{flex:1 1 0;min-width:0}
.fields-row--msg>.field:first-child{flex:0 0 190px}
.fields-row--date>.field[hidden]{display:none}
input[type=date].input{min-width:0;-webkit-appearance:none;appearance:none}
input[type=date].input:invalid,input[type=date].input:not(:valid){color:var(--sm-muted)}
@media (max-width:600px){ .fields-row--msg>.field:first-child{flex:1 1 auto} .fields-row--date{flex-direction:row} }
.contra__more{margin-top:-8px}
.amen__ic--pic{background:none;width:64px;height:52px;border-radius:0;justify-content:flex-start}
.amen__ic--pic img{width:auto;height:64px;max-width:none;margin-top:-10px}
.lb{position:fixed;inset:0;z-index:400;display:none;align-items:center;justify-content:center;padding:56px 72px;background:rgba(30,18,10,.92)}
.lb.is-open{display:flex}
.lb__img{max-width:100%;max-height:100%;border-radius:14px;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.lb__btn{position:absolute;width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid rgba(243,231,211,.5);color:var(--sm-on-dark);background:rgba(43,26,16,.6);font-size:24px;line-height:1}
.lb__btn:hover{background:var(--sm-blue);border-color:var(--sm-blue)}
.lb__x{right:16px;top:16px}
.lb__prev{left:14px;top:50%;margin-top:-24px}
.lb__next{right:14px;top:50%;margin-top:-24px}
.lb__n{position:absolute;left:0;right:0;bottom:16px;text-align:center;font-size:14px;color:var(--sm-on-dark-muted)}
@media (max-width:600px){ .lb{padding:64px 10px 72px} .lb__prev,.lb__next{top:auto;bottom:12px;margin:0} .lb__prev{left:calc(50% - 60px)} .lb__next{right:calc(50% - 60px)} .lb__n{bottom:auto;top:28px} }

/* строка-уточнение внутри главного заголовка: заголовок остаётся коротким, а поисковик видит, о чём страница */
.h1__k{display:block;font-family:var(--sm-font-text,inherit);font-size:clamp(13px,calc(1.1vw / var(--zf,1)),16px);font-weight:600;letter-spacing:.16em;text-transform:uppercase;line-height:1.3;margin-bottom:.9em;opacity:.82}

/* ============ правки 11.10: шапка — «записаться» и «оставить заявку» рядом ============ */
.hdr__acts{display:inline-flex;align-items:center;gap:8px}
.hdr__ask--line{background:rgba(31,18,8,.35);box-shadow:inset 0 0 0 1.5px rgba(243,231,211,.7)}
.hdr__ask--line:hover{background:rgba(243,231,211,.16)}
@media (max-width:1560px){ .hdr__acts .hdr__ask{height:44px;padding:0 16px;font-size:13px} .hdr__right{gap:18px} }
@media (max-width:1280px){ .hdr__acts .hdr__ask{padding:0 13px;font-size:12px;letter-spacing:.01em} .hdr__right{gap:12px} }
@media (max-width:1100px){ .hdr__link--contacts{display:none} }
/* зачёркнутая прежняя цена: цифры читаются, линия приглушена */
.card__price s,.pcard__price s,.cert-card__price s,.quick__price s,.sd-price s{color:var(--sm-text);opacity:.82;font-weight:500;text-decoration-thickness:1.5px;text-decoration-color:rgba(74,45,27,.4)}
.card__price s{font-size:17px}
.quick__price s{font-size:21px}

/* ============ приглашение в подбор программы ============ */
.quizcta{display:flex;align-items:center;gap:18px;margin:18px 0;padding:12px 22px 12px 14px;border-radius:24px;background:var(--sm-sand-2);box-shadow:inset 0 0 0 1px var(--sm-line-soft);transition:box-shadow .2s,transform .2s}
.quizcta:hover{box-shadow:inset 0 0 0 1.5px var(--sm-blue);transform:translateY(-1px)}
.quizcta__art{width:58px;height:auto;flex:none}
.quizcta__b{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.quizcta__b b{font:700 17px/1.25 var(--sm-font-display);text-transform:uppercase;letter-spacing:.02em}
.quizcta__b span{font-size:15px;line-height:1.4;color:var(--sm-muted)}
.quizcta__btn{flex:none}
@media (max-width:600px){ .quizcta{gap:12px;padding:10px 12px;border-radius:20px} .quizcta__art{width:44px} .quizcta__b b{font-size:14px} .quizcta__b span{font-size:13px} .quizcta__btn{padding:0 14px;font-size:12px} }

/* ======================= правки 12.10.2026 ======================= */
/* корзина в шапке — крупнее, тайский тук-тук */
.hdr__cart--tuk{width:56px;height:52px}
.hdr__cart--tuk svg{width:44px;height:44px;stroke-width:1.5}
.hdr__cart--tuk .cart-count{top:-2px;right:-6px;min-width:22px;height:22px;border-radius:11px;font-size:13px}
@media (max-width:600px){
  .hdr__cart--tuk{width:48px;height:46px}
  .hdr__cart--tuk svg{width:38px;height:38px}
}
/* окно с рассказом о виде ритуала под кнопками категорий */
.cat-about{display:flex;align-items:flex-start;gap:18px;margin:20px 0 4px;padding:20px 26px 20px 20px;border-radius:24px;background:var(--sm-sand-2);box-shadow:0 0 0 1px var(--sm-line-soft)}
.cat-about__ic{flex:0 0 auto;width:56px;height:56px;object-fit:contain}
.cat-about__t{display:flex;flex-direction:column;gap:8px;align-self:center;font-size:17px;line-height:1.55;color:var(--sm-text)}
@media (max-width:600px){
  .cat-about{gap:12px;padding:16px;border-radius:20px;margin-top:16px}
  .cat-about__ic{width:40px;height:40px}
  .cat-about__t{font-size:15.5px}
}

/* меню: вид 2026-10-27 — пункты по высоте экрана, весь список виден без прокрутки */
.menu__l2{font-size:clamp(20px, calc(3.6vh / var(--zf,1)), 34px);line-height:1.32}
.menu__l1{font-size:clamp(22px, calc(4.4vh / var(--zf,1)), 44px);line-height:1.25;gap:20px}
.menu__l1 svg{width:clamp(22px, calc(3.4vh / var(--zf,1)), 34px);height:clamp(22px, calc(3.4vh / var(--zf,1)), 34px)}
.menu__gap{height:clamp(8px, calc(1.6vh / var(--zf,1)), 20px)}
.menu__body{padding-bottom:clamp(20px, calc(4vh / var(--zf,1)), 48px)}
@media (max-width:640px){
  .menu__l2{font-size:clamp(18px, calc(3vh / var(--zf,1)), 26px);line-height:1.3}
  .menu__l1{font-size:clamp(20px, calc(3.4vh / var(--zf,1)), 30px);gap:12px;padding:2px 0}
}

/* соцсети на главной — круглые кнопки с иконками (правки 27.10) */
.soc-tile{padding:20px 24px;border-radius:24px;align-items:center}
.soc-tile .tile__body{font-size:16px;line-height:1.45}
.soc-tile__btns{display:flex;gap:12px;flex:none}
.soc-tile__btns a{width:56px;height:56px;border-radius:50%;background:var(--sm-blue);color:#fff;display:flex;align-items:center;justify-content:center;transition:background .2s,transform .2s}
.soc-tile__btns a:hover{background:var(--sm-brown);transform:translateY(-2px)}
.soc-tile__btns svg{width:26px;height:26px}

/* «почему доверяют»: картинки вместо значков — сертификат, руки мастера, мешочки (правки 27.10) */
.amen__ic--photo{background:none;width:auto;height:120px;border-radius:0;justify-content:flex-start;margin-bottom:6px}
.amen__ic--photo img{height:120px;width:auto;max-width:none}
.amen__ic--cert img{height:118px;border-radius:6px;box-shadow:0 8px 18px rgba(60,32,14,.28);transform:rotate(-2deg)}
@media (max-width:640px){.amen__ic--photo,.amen__ic--photo img{height:96px}.amen__ic--cert img{height:94px}}
.amen__ic--wai,.amen__ic--wai img{height:150px}
.amen__ic--wai img{border-radius:18px}
@media (max-width:640px){.amen__ic--wai,.amen__ic--wai img{height:120px}}

/* ── Логотип: вектор дизайнера (Samui.eps) и блик слева направо (правки 30.10) ──
   Блик — полоса света под маской logo-mask.svg (тот же viewBox, что у логотипа), поэтому бежит строго по буквам и пальме. */
.hdr__logo,.ftr__logo{position:relative;isolation:isolate}
.hdr__logo::after,.ftr__logo::after{content:"";position:absolute;inset:0;pointer-events:none;
  -webkit-mask:url(/static/samui/logo-mask.svg) center/contain no-repeat;mask:url(/static/samui/logo-mask.svg) center/contain no-repeat;
  background:linear-gradient(105deg,transparent 0 38%,rgba(255,250,235,.95) 48%,rgba(255,236,190,.9) 52%,transparent 62% 100%) no-repeat;background-size:300% 100%;background-position:100% 0;
  animation:lg-shine 5s cubic-bezier(.4,0,.2,1) 1.2s infinite}
.hdr__logo svg{filter:drop-shadow(0 0 10px rgba(0,164,224,.28))}
.ftr__logo{--lg-t:#3FB8E6;--lg-p:#2BB3A6}
.ftr__logo::after{animation-delay:2.6s}
@keyframes lg-shine{0%{background-position:100% 0}38%,100%{background-position:0 0}}
/* большая надпись SAMUI в подвале переливается тем же золотым бликом */
.ftr__giant span{background:linear-gradient(100deg,var(--sm-brown) 0 40%,#7A5228 46%,#C89A5B 50%,#7A5228 54%,var(--sm-brown) 60% 100%) no-repeat;background-size:300% 100%;background-position:100% 0;
  -webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:lg-shine 7s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){.hdr__logo::after,.ftr__logo::after,.ftr__giant span{animation:none}.hdr__logo::after,.ftr__logo::after{display:none}}

/* адрес и режим работы под кнопками шапки (правки 30.10): не меняют высоту шапки, на телефоне скрыты */
.hdr__left,.hdr__right{position:relative}
.hdr__note{position:absolute;top:calc(100% + 7px);font:500 13px/1.2 var(--sm-font-text,inherit);letter-spacing:.03em;color:rgba(243,231,211,.82);white-space:nowrap;text-shadow:0 1px 6px rgba(0,0,0,.45)}
.hdr__left .hdr__note{left:2px}
.hdr__right .hdr__note{right:2px}
a.hdr__note:hover{color:#fff;text-decoration:underline}
.hdr.is-stuck .hdr__note{top:calc(100% + 3px);font-size:12px}
@media (max-width:1100px){.hdr__note{display:none}}

/* ── Правки 31.10: логотип в шапке белый, часы и адрес — вместе слева ── */
.hdr__logo{--lg-t:#fff;--lg-p:#fff;color:#fff}
.hdr__logo svg{filter:drop-shadow(0 1px 8px rgba(20,11,5,.45))}
.hdr__logo::after{background-image:linear-gradient(105deg,transparent 0 38%,rgba(232,196,128,.95) 48%,rgba(246,220,160,.9) 52%,transparent 62% 100%)}
.hdr__note--info{display:flex;gap:0;line-height:1.25}
.hdr__note--info a::before{content:"·";margin:0 .55em;opacity:.7}
@media (max-width:1100px){.hdr__note--info{display:none}}
.hdr__note--info a{color:inherit}
.hdr__note--info a:hover{color:#fff;text-decoration:underline}

/* часы и адрес в шапке: не прилипать к кнопкам */
.hdr__note--info{top:calc(100% + 16px)}
/* при прокрутке шапка узкая — строка не помещается и ложится на заголовки, поэтому прячем */
.hdr__note--info{transition:opacity .2s,visibility .2s}
.hdr.is-stuck .hdr__note--info{opacity:0;visibility:hidden;pointer-events:none}

/* правки 02.11 (маркетолог): шапка, меню и подвал — не капсом, а с одной большой буквы (фильтр |sc в base.html) */
.hdr__menu,.hdr__menu .caps,.menu__close,.menu__close .caps,.hdr__link,.hdr__ask,.menu__l1,.menu__l2,.ftr__a{text-transform:none;letter-spacing:0}
@media (min-width:1101px){.hdr__ask{font-size:16px;letter-spacing:.01em}}
.menu__l1,.menu__l2{letter-spacing:-.005em}

/* правки 02.11 (маркетолог): стрелки карусели — по бокам ленты, по центру по высоте (галерея на главной, мастера) */
.car-sides{position:relative}
.car-arr{position:absolute;top:50%;z-index:4;translate:0 -50%;width:56px;height:56px;box-shadow:0 6px 22px rgba(20,11,5,.35);background:rgba(43,26,16,.78);border-color:rgba(243,231,211,.55);color:var(--sm-on-dark)}
.car-arr.round-btn--blue{background:var(--sm-blue);border-color:var(--sm-blue)}
.car-arr--prev{left:max(6px,calc(var(--g) - 28px))}
.car-arr--next{right:max(6px,calc(var(--g) - 28px))}
.car-arr:disabled{opacity:0;pointer-events:none}
.car-arr svg{width:24px;height:24px}
@media (max-width:860px){
  .car-sides .car-arr{display:flex;width:44px;height:44px}
  .car-arr svg{width:20px;height:20px}
  /* мастера: на телефоне одна карточка на экран, листать стрелками */
  .car-sides .master{width:calc(100% - 0px);max-width:none}
  .car-sides .carousel__track:has(.master){gap:16px}
}
@media (max-width:860px){ .car-sides:has(.master) .car-arr{top:min(34%,200px)} }

/* правки 02.11 (маркетолог): окно записи и быстрый просмотр программы помещаются в экран ноутбука — кнопки видны без прокрутки */
#booking-modal .modal__box{max-width:560px;padding:30px 32px 26px;gap:12px}
#booking-modal form.stack{gap:12px}
#booking-modal .stack--s{gap:4px}
#booking-modal .h3{font-size:clamp(22px,2vw,28px)}
#booking-modal .t-md{font-size:14.5px;line-height:1.4}
#booking-modal .field{gap:4px}
#booking-modal .field__label{font-size:13px}
#booking-modal .input{height:48px;font-size:15.5px}
#booking-modal textarea.input{height:auto;min-height:64px}
#booking-modal .modal__switch .seg__btn{height:42px}
#booking-modal #booking-submit{height:52px!important}
#booking-modal .modal__online .btn{height:48px}
/* имя и телефон — в одну строку на широком окне */
@media (min-width:601px){
  #booking-modal form{display:grid;grid-template-columns:1fr 1fr;column-gap:12px;row-gap:12px}
  #booking-modal form>*{grid-column:1/-1}
  #booking-modal form>label.field:has(input[name=name]){grid-column:1}
  #booking-modal form>label.field:has(input[name=phone]){grid-column:2}
}
@media (max-height:720px) and (min-width:601px){
  #booking-modal .modal__box{padding:22px 28px 20px}
  #booking-modal #booking-sub{display:none}
}
.modal--quick .modal__box{overflow:hidden;max-height:calc(calc(100vh / var(--zf,1)) - 48px)}
.modal--quick .quick__b{overflow:auto;max-height:calc(calc(100vh / var(--zf,1)) - 48px);padding-bottom:0}
.quick__acts{position:sticky;bottom:0;z-index:2;margin:0 -36px;padding:12px 36px 16px;background:linear-gradient(rgba(247,239,226,0),var(--sm-sand-2) 14px)}
.quick__more{padding-bottom:22px}
@media (max-height:760px){ .quick__b{padding-top:28px;gap:10px} .quick__price{font-size:28px} .quick__list{font-size:14px;gap:4px} .quick__acts .btn{height:48px} }
@media (max-width:760px){
  .modal--quick .modal__box{overflow:auto}
  .modal--quick .quick__b{overflow:visible;max-height:none}
  .quick__acts{margin:0 -20px;padding:12px 20px 14px}
}

/* 03.11: часы и адрес в шапке — белые со свечением, читаются на любом фоне */
.hdr__note--info{font-size:14px;font-weight:600;letter-spacing:.04em;color:#fff;
  text-shadow:0 0 6px rgba(255,236,190,.85),0 0 14px rgba(255,214,140,.55),0 1px 3px rgba(0,0,0,.85)}
.hdr__note--info a{color:#fff}
.hdr__note--info a::before{opacity:1}

/* правки 03.11 (2): подвал — пункты трёх колонок стоят строками на одной линии (общая сетка строк через subgrid) */
@media (min-width:601px){
  @supports (grid-template-rows:subgrid){
    .ftr__cols{row-gap:13px}
    .ftr__col{display:grid;grid-row:span 6;grid-template-rows:subgrid;row-gap:13px;align-items:center;justify-items:start}
    .ftr__cap{align-self:end}
    .ftr__brand{grid-row:span 6}
  }
}
@media (min-width:601px) and (max-width:1100px){
  @supports (grid-template-rows:subgrid){.ftr__brand{grid-row:auto}}
}
@media (min-width:1500px){.ftr__a:not(.ftr__a--sm){white-space:nowrap}}

