/* ELLAVASH v14 — shared geometry and type roles.
   Loaded last. Fonts, font weights, content and CMS fields remain in their
   approved source components. The home hero keeps its own editorial scale. */
:root {
  --site-gutter:max(clamp(22px,5vw,88px),calc((100vw - 1440px)/2));
  --pad:var(--site-gutter);
  --editorial-gutter:var(--site-gutter);
  --v14-page-title:clamp(40px,5.4vw,86px);
  --v14-product-title:clamp(50px,6.2vw,105px);
  --v14-section-title:clamp(34px,4vw,64px);
  --v14-support-title:clamp(28px,3.2vw,46px);
  --v14-card-title:clamp(26px,2.5vw,38px);
  --v14-section-space:clamp(52px,6.25vw,90px);
  --v14-column-gap:clamp(28px,5vw,72px);
}

/* Every wide section uses the same outside edges. Reading width belongs to
   its content, not to an unrelated maximum width on the section itself. */
:is(.growth-top,.growth-intro,.growth-story,.growth-faq,.growth-related,
    .growth-directory,.growth-archive,.info-heading) {
  max-width:none;
  padding-inline:var(--site-gutter);
}
.growth-intro h1 { max-width:1000px; }
.growth-lead { max-width:780px; }
.growth-story section {
  grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  column-gap:var(--v14-column-gap);
}
.growth-faq details p { max-width:800px; }
.growth-related .growth-links,
.growth-archive .growth-links { max-width:none; }

/* Explicit roles beat the old language-wide h1/h2 rules. There is no global
   Russian size override: product names, sections and supporting titles have
   the same jobs in every language. Family and weight remain inherited. */
html[lang] body.product-page .product-intro h1 {
  font-size:var(--v14-product-title);
  line-height:1.06;
}
html[lang] body :is(.growth-intro,.info-heading) h1 {
  font-size:var(--v14-page-title);
  line-height:1.1;
}
html[lang] body.product-page :is(.product-story,.product-related) h2,
html[lang] body :is(.growth-story,
    .growth-faq,.growth-related,.growth-archive) h2 {
  font-size:var(--v14-support-title);
  line-height:1.16;
}
html[lang] body.product-page :is(.product-faq,.product-contact) h2,
html[lang] body.info-page :is(.workshop,.section-heading,.visit) h2 {
  font-size:var(--v14-section-title);
  line-height:1.12;
}
html[lang] body.growth-page .growth-directory > a > h2 {
  font-size:var(--v14-card-title);
  line-height:1.16;
}

/* The number introduces a section; it no longer pushes the title onto a
   second, unrelated left axis. Paragraphs align with the title below it. */
.product-story section {
  grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  grid-template-rows:auto auto;
  gap:16px var(--v14-column-gap);
  padding-block:40px;
  align-items:start;
}
.product-story section > span {
  grid-column:1;
  grid-row:1;
}
.product-story section > h2 {
  grid-column:1;
  grid-row:2;
}
.product-story section > div {
  grid-column:2;
  grid-row:2;
}
.product-faq {
  grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  gap:var(--v14-column-gap);
}
.product-faq h2 { max-width:520px; }
.product-related > .growth-links { gap:8px 28px; }
.product-related > .growth-links > a { font-size:16px; }

/* Restore the generous desktop home composition, independently from the
   card, form and accessibility improvements made after the earlier design. */
@media (min-width:1051px) {
  .home-page .hero { min-height:745px; min-block-size:745px; }
  .home-page .hero-content { padding-block:66px 70px; }
  html[lang] .home-page .hero h1 {
    font-size:clamp(82px,9.3vw,154px) !important;
    line-height:.94 !important;
    min-block-size:calc(clamp(82px,9.3vw,154px) * 2.004) !important;
  }
  html:not([lang=ru]) .home-page .hero h1 em {
    font-size:1.12em;
    line-height:.95;
  }
  html[lang=ru] .home-page .hero h1 {
    font-size:clamp(64px,6.7vw,112px) !important;
    line-height:1.1 !important;
  }
  html[lang=ru] .home-page .hero h1 em {
    font-size:1em;
    line-height:inherit;
  }
  .home-page .hero .hand { top:8%; height:94%; }
}
@media (min-width:1700px) {
  .home-page .hero { min-height:860px; min-block-size:860px; }
  .home-page .hero-content { padding-block:85px 95px; }
}
@media (min-width:701px) and (max-width:1050px) {
  .home-page .hero { min-height:680px; min-block-size:680px; }
  .home-page .hero-content { padding-block:60px 48px; }
  html[lang] .home-page .hero h1 {
    font-size:10.2vw !important;
    min-block-size:calc(10.2vw * 2.004) !important;
    line-height:.98 !important;
  }
  html:not([lang=ru]) .home-page .hero h1 em {
    font-size:1.08em;
    line-height:inherit;
  }
  html[lang=ru] .home-page .hero h1 {
    font-size:7.2vw !important;
    line-height:1.1 !important;
  }
}

/* Supporting sections on short information pages should not overwhelm the
   answer, address or workshop content that brought the reader here. */
.info-page .info-heading { padding-block:52px 40px; }
.info-page .info-heading p:last-child { max-width:740px; line-height:1.55; }
.info-page .section { padding-block:52px; }
.info-page .questions { padding-top:12px; }
.info-page .questions summary { font-size:18px; line-height:1.5; }
.info-page .questions details p { font-size:16px; line-height:1.65; }
.info-page .section-heading { margin-bottom:30px; }
.info-page .section-heading .eyebrow { margin-bottom:16px; }
.info-page .process ol { gap:32px; }
html[lang] body.info-page .process h3 { font-size:30px; line-height:1.15; }
.info-page .process li p { line-height:1.6; }
.info-page .request-band { padding-block:44px; gap:40px; }
html[lang] body.info-page :is(.request-band,.partner-row) h2 {
  font-size:var(--v14-support-title);
  line-height:1.16;
}
.info-page .request-copy > p { font-size:17px; line-height:1.55; }
.info-page .workshop {
  gap:var(--v14-column-gap);
  /* The handwritten signature sits outside the rotated gold frame.
     Preserve the original clearance instead of overlapping the next band. */
  padding-bottom:120px;
}
.info-page .workshop-copy > p:not(.eyebrow) { max-width:440px; }
.info-page .visit { gap:var(--v14-column-gap); }
.info-page .visit h2 { margin-block:18px 22px; }

/* A directory card behaves like a link before it is hovered. The arrow is
   drawn in CSS and the complete title and description remain visible. */
.growth-directory > a {
  position:relative;
  padding:28px 38px 30px 0;
  transition:color .18s ease;
}
.growth-directory > a::after {
  content:"";
  position:absolute;
  width:15px;
  height:15px;
  top:35px;
  right:3px;
  border-top:1.5px solid currentColor;
  border-right:1.5px solid currentColor;
  color:var(--red,#a63225);
}
.growth-directory > a::before {
  content:"";
  position:absolute;
  width:21px;
  height:1.5px;
  top:42px;
  right:1px;
  background:var(--red,#a63225);
  transform:rotate(-45deg);
}
.growth-directory > a h2 { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:.18em; }
.growth-directory > a:hover h2 { text-decoration-thickness:2px; }
.growth-directory > a:focus-visible { outline:2px solid var(--red,#a63225); outline-offset:6px; }
.growth-archive > .growth-links {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0 32px;
}
.growth-archive > .growth-links > a {
  display:flex;
  align-items:center;
  min-height:56px;
  padding-block:14px;
  border-bottom:1px solid var(--line,#dacdb5);
}

/* Editorial pages retain a useful reading column. Quiet contextual links
   below an article remain present, without several competing CTA surfaces. */
.el-editorial main.container { padding-inline:32px !important; }
.el-editorial .growth-old-links { margin-top:24px; padding-top:0; border-top:0; }
.el-editorial .growth-old-links > p { font-size:14px; margin-bottom:8px; }
.el-editorial .growth-old-links .growth-links { gap:8px 24px; font-size:15px; }
.el-editorial .growth-old-links a { display:inline-flex; align-items:center; min-height:44px; }
.el-editorial main > p:has(> .el-btn) { margin-block:20px !important; }
.el-editorial main > p > .el-btn {
  height:auto !important;
  padding:0 !important;
  min-height:44px;
  background:transparent;
  color:var(--primary);
  text-decoration:underline !important;
  text-underline-offset:.22em;
}

/* Review fields need a control boundary distinct from decorative dividers. */
.el-editorial #rf { --v14-input-line:var(--ink-soft,#634b38); }
html body.el-editorial #rf .el-input { border-bottom-color:var(--v14-input-line); }

@media (min-width:701px) {
  /* Share the process rows just as the catalogue shares its semantic rows. */
  .info-page .process ol { row-gap:0; }
  .info-page .process li { display:grid; grid-template-rows:subgrid; grid-row:span 3; }
}
@media (max-width:1100px) {
  /* The invitation is useful content, including its visit enquiry action.
     Keep it available when the three-column desktop layout becomes narrow. */
  .home-page .visit-middle,
  .info-page .visit-middle { display:block; min-width:0; }
}
@media (min-width:701px) and (max-width:1100px) {
  .home-page .visit,
  .info-page .visit {
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    grid-template-rows:auto auto;
    gap:28px var(--v14-column-gap);
    align-items:start;
  }
  :is(.home-page,.info-page) .visit > div:first-child { grid-column:1; grid-row:1; }
  :is(.home-page,.info-page) .visit > .visit-middle { grid-column:1; grid-row:2; }
  :is(.home-page,.info-page) .visit > .album { grid-column:2; grid-row:1 / span 2; align-self:center; }
}
@media (max-width:900px) and (min-width:701px) {
  .growth-archive > .growth-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .product-story section,
  .product-faq { column-gap:30px; }
}
@media (max-width:700px) {
  :root {
    --v14-page-title:clamp(35px,9vw,56px);
    --v14-product-title:clamp(38px,10.8vw,58px);
    --v14-section-title:clamp(34px,8vw,46px);
    --v14-support-title:clamp(30px,7vw,40px);
    --v14-card-title:clamp(27px,6.6vw,36px);
    --v14-column-gap:28px;
  }
  .growth-story section { grid-template-columns:minmax(0,1fr); gap:12px; }
  .growth-story section h2 { margin-bottom:8px; }
  .product-story section { grid-template-columns:minmax(0,1fr); gap:14px; padding-block:30px; }
  .product-story section > span { grid-column:1; grid-row:auto; }
  .product-story section > h2 { grid-column:1; grid-row:auto; }
  .product-story section > div { grid-column:1; grid-row:auto; }
  .product-faq { display:block; padding-block:44px 30px; }
  .product-faq h2 { margin-bottom:24px; }
  .product-intro { display:flex; flex-direction:column; gap:28px; }
  .product-portrait { width:100%; }
  .product-intro-copy { width:100%; }
  .info-page .info-heading { padding-block:36px 28px; }
  .info-page .info-heading p:last-child { font-size:18px; }
  .info-page .section { padding-block:40px; }
  .info-page .questions { padding-top:8px; }
  .info-page .questions summary { font-size:17px; }
  .info-page .process ol { gap:28px; }
  html[lang] body.info-page .process h3 { font-size:28px; margin-block:16px 12px; }
  .info-page .request-band { padding-block:36px; gap:24px; }
  .info-page .request-copy > p { font-size:16px; }
  .info-page .section-heading { margin-bottom:26px; }
  .info-page .workshop { gap:32px; padding-bottom:100px; }
  .growth-directory > a { padding-block:26px; }
  .growth-directory > a::after { top:32px; }
  .growth-directory > a::before { top:39px; }
  .growth-archive > .growth-links { grid-template-columns:minmax(0,1fr); }
  .growth-archive > .growth-links > a { min-height:52px; }
  .el-editorial main.container { padding-inline:var(--site-gutter) !important; }
  .el-editorial .growth-old-links .growth-links { flex-direction:row; }
}
@media (prefers-reduced-motion:reduce) {
  .growth-directory > a { transition:none; }
}

/* RU home display: preserve Lora and match the desktop ES/EN headline scale. */
html[lang=ru] .home-page .hero h1 {
  font-weight:700;
  letter-spacing:-.05em;
}
html[lang=ru] .home-page .hero h1 em {
  font-weight:500;
}
@media (min-width:1051px) {
  html[lang=ru] .home-page .hero h1 {
    font-size:clamp(82px,9.3vw,154px) !important;
    line-height:1 !important;
    width:max-content;
    max-width:calc(100vw - 2 * var(--pad));
  }
  html[lang=ru] .home-page .hero .hand { right:-28%; }
}
@media (min-width:701px) and (max-width:1050px) {
  html[lang=ru] .home-page .hero h1 {
    font-size:8.8vw !important;
    line-height:1.04 !important;
  }
  html[lang=ru] .home-page .hero .hand { right:-21%; }
}
@media (max-width:700px) {
  html[lang=ru] .home-page .hero h1 {
    font-size:clamp(34px,11.1vw,74px) !important;
    line-height:1.08 !important;
  }
}
