/* ============================================================
   TSA shared design system — gallery, form, lang, lightbox, hero
   Variant files only set colors/type; layout lives here.
   ============================================================ */

:root{
  --art-radius:8px;
  --art-feather:4px;
}

/* Soft dissolve into page surface (edges only; center colors stay true) */
.tsa-soft-mask{
  -webkit-mask-image:
    linear-gradient(to right, transparent 0, #000 var(--art-feather), #000 calc(100% - var(--art-feather)), transparent 100%),
    linear-gradient(to bottom, transparent 0, #000 var(--art-feather), #000 calc(100% - var(--art-feather)), transparent 100%);
  -webkit-mask-repeat:no-repeat;
  -webkit-mask-size:100% 100%;
  -webkit-mask-composite:source-in;
  mask-image:
    linear-gradient(to right, transparent 0, #000 var(--art-feather), #000 calc(100% - var(--art-feather)), transparent 100%),
    linear-gradient(to bottom, transparent 0, #000 var(--art-feather), #000 calc(100% - var(--art-feather)), transparent 100%);
  mask-repeat:no-repeat;
  mask-size:100% 100%;
  mask-composite:intersect;
}

/* --- HERO HARD RESET (all variants) --- */
.hero-grid,
.ed-hero-grid,
.at-hero-grid,
.g-hero-grid{
  display:grid !important;
  grid-template-columns:minmax(0, 1fr) minmax(0, 1fr) !important;
  gap:48px !important;
  align-items:center;
  width:100%;
  position:relative;
}
.hero-grid > *,
.ed-hero-grid > *,
.at-hero-grid > *,
.g-hero-grid > *{
  min-width:0;
  max-width:100%;
  position:relative;
  z-index:1;
  overflow:hidden;
}
.hero-copy,
.ed-hero-grid > div:first-child,
.at-hero-copy,
.g-hero-copy{
  overflow:visible;
  z-index:2;
}
.hero-visual,
.ed-hero-visual,
.at-hero-visual,
.g-hero-visual{
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  z-index:1;
  background:transparent !important;
}

/* Hero / peapilt (var5 DOM: .g-hero-visual > figure.tsa-hero-media > img) */
.tsa-hero-media,
.hero-visual .art-plate,
.hero-visual .art-plate--hero,
.ed-hero-visual .art-plate,
.ed-hero-visual .art-plate--hero,
.at-hero-visual .art-plate,
.at-hero-visual .art-plate--hero,
.g-hero-visual .art-plate,
.g-hero-visual .art-plate--hero,
.g-hero-visual .tsa-hero-media{
  display:block !important;
  margin:0 auto !important;
  padding:0 !important;
  border:0 !important;
  border-radius:var(--art-radius) !important;
  background:transparent !important;
  box-shadow:none !important;
  width:fit-content;
  max-width:100%;
  min-height:0 !important;
  max-height:none !important;
  overflow:hidden !important;
  line-height:0;
  -webkit-mask-image:none !important;
  mask-image:none !important;
}
.tsa-hero-media picture,
.hero-visual .art-plate picture,
.ed-hero-visual .art-plate picture,
.at-hero-visual .art-plate picture,
.g-hero-visual .art-plate picture,
.g-hero-visual .tsa-hero-media picture{
  display:block;
  max-width:100%;
  border-radius:inherit;
  background:transparent;
  overflow:hidden;
  line-height:0;
}
/* Align shared hero figure with var5 peapilt wrapper model */
.g-hero-visual .tsa-hero-media,
body.v5 .g-hero-visual .tsa-hero-media{
  --peapilt-radius:12px;
  border-radius:var(--peapilt-radius, var(--art-radius)) !important;
  overflow:hidden !important;
  isolation:isolate;
  transform:none !important;
}
.tsa-hero-media img,
.tsa-hero-media picture img,
.hero-visual .art-plate img,
.hero-visual .art-plate picture img,
.ed-hero-visual .art-plate img,
.ed-hero-visual .art-plate picture img,
.at-hero-visual .art-plate img,
.at-hero-visual .art-plate picture img,
.g-hero-visual .art-plate img,
.g-hero-visual .art-plate picture img,
.g-hero-visual .tsa-hero-media img,
.g-hero-visual .tsa-hero-media picture img,
.g-hero-visual img,
body.v5 .tsa-hero-media img,
body.v5 .g-hero-visual .tsa-hero-media img,
body.v5 .g-hero-visual img{
  display:block !important;
  width:auto !important;
  height:auto !important;
  max-width:100% !important;
  max-height:min(400px, 50vh) !important;
  object-fit:contain !important;
  object-position:center center !important;
  margin:0 auto;
  /* Radius on WRAPPER only — img must not carry radius/transform/clip */
  border-radius:0 !important;
  transform:none !important;
  clip-path:none !important;
  -webkit-clip-path:none !important;
  background:transparent !important;
}
.ed-duo{
  display:grid !important;
  grid-template-columns:minmax(0, 1fr) minmax(0, 1fr) !important;
  gap:1rem !important;
  align-items:center;
  width:100%;
}
.ed-duo .tsa-hero-media img{
  max-height:min(340px, 46vh) !important;
}

@media (max-width:900px){
  .hero-grid,
  .ed-hero-grid,
  .at-hero-grid,
  .g-hero-grid{
    grid-template-columns:minmax(0, 1fr) !important;
    gap:1.5rem !important;
  }
  .ed-duo{grid-template-columns:minmax(0, 1fr) !important}
  .tsa-hero-media img,
  .hero-visual .art-plate img,
  .ed-hero-visual .art-plate img,
  .at-hero-visual .art-plate img,
  .g-hero-visual .art-plate img{
    max-height:min(340px, 52vh) !important;
  }
}

/* --- Gallery / about: fixed slots; radius on photo; soft crop via CSS vars --- */
.art-plate{
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent !important;
  box-shadow:none;
  overflow:visible;
  -webkit-mask-image:none !important;
  mask-image:none !important;
}
.art-plate--gallery{
  aspect-ratio:auto;
  width:100%;
  height:100%;
  padding:0;
  background:transparent !important;
  border-radius:var(--art-radius) !important;
  overflow:hidden;
  -webkit-mask-image:none !important;
  mask-image:none !important;
}
.art-plate--gallery picture{
  display:block;
  width:100%;
  height:100%;
  background:transparent;
  border-radius:0;
}
.art-plate--gallery img,
.art-plate--gallery picture img{
  display:block;
  width:100% !important;
  height:100% !important;
  max-width:none;
  max-height:none;
  object-fit:cover;
  object-position:var(--crop-x, 50%) var(--crop-y, 50%);
  transform:scale(var(--crop-zoom, 1));
  transform-origin:var(--crop-x, 50%) var(--crop-y, 50%);
  margin:0;
  border-radius:var(--art-radius) !important;
  background:transparent !important;
}
.art-plate--about{
  aspect-ratio:auto;
  width:100%;
  max-width:240px;
  padding:0;
  margin:0;
  background:transparent !important;
  border-radius:0 !important;
  -webkit-mask-image:none !important;
  mask-image:none !important;
}
.art-plate--about img,
.art-plate--about picture img{
  display:block;
  width:auto !important;
  height:auto !important;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  object-position:center;
  margin:0 auto;
  border-radius:var(--art-radius) !important;
  background:transparent !important;
}


/* --- Uniform gallery rows (fixed slots) --- */
.tsa-gallery{
  display:flex;
  flex-direction:column;
  gap:22px;
  align-items:stretch;
  width:100%;
}
.tsa-gallery-row{
  display:grid;
  gap:22px;
  width:100%;
  align-items:stretch;
}
.tsa-gallery-row--equal3{
  grid-template-columns:repeat(3, minmax(0, 1fr));
}
.tsa-gallery-row--wide-left{
  grid-template-columns:minmax(0, 2fr) minmax(0, 1fr);
}
.tsa-gallery-row--wide-right{
  grid-template-columns:minmax(0, 1fr) minmax(0, 2fr);
}
.tsa-gallery__item,
.tsa-gallery__slot{
  display:flex;
  flex-direction:column;
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  cursor:pointer;
  text-align:left;
  font:inherit;
  color:inherit;
  min-width:0;
  width:100%;
  border-radius:4px;
}
.tsa-gallery__slot{
  aspect-ratio:1 / 1;
}
.tsa-gallery__slot--wide{
  aspect-ratio:2 / 1;
}
.tsa-gallery__item:focus-visible{
  outline:2px solid var(--accent, #8A6945);
  outline-offset:3px;
}
.tsa-gallery__item .cap{display:none} /* names hidden in gallery by default */
.tsa-gallery__item .art-plate--gallery{
  flex:1 1 auto;
  min-height:0;
}

@media (max-width:900px){
  .tsa-gallery{gap:18px}
  .tsa-gallery-row{gap:18px}
  .tsa-gallery-row--equal3{grid-template-columns:repeat(2, minmax(0, 1fr))}
  .tsa-gallery-row--wide-left,
  .tsa-gallery-row--wide-right{grid-template-columns:minmax(0, 1fr)}
  .tsa-gallery-row--wide-left .tsa-gallery__slot--wide,
  .tsa-gallery-row--wide-right .tsa-gallery__slot--wide{aspect-ratio:16 / 10}
}
@media (max-width:520px){
  .tsa-gallery{gap:16px}
  .tsa-gallery-row{gap:16px}
  .tsa-gallery-row--equal3{grid-template-columns:minmax(0, 1fr)}
  .art-plate--gallery{max-height:min(70vh, 420px)}
}

/* --- Language links: fixed far-right slot, equal ET/EN/FI cells --- */
.header-right{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:.75rem 1rem;
  margin-left:auto;
  flex:1 1 auto;
  min-width:0;
}
.header-right .nav,
.header-right .ed-nav,
.header-right .at-nav,
.header-right .g-nav{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex:1 1 auto;
  flex-wrap:nowrap;
  gap:.85rem;
  min-width:0;
  overflow:hidden;
}
@media (min-width:901px){
  .header-right .nav[hidden],
  .header-right .ed-nav[hidden],
  .header-right .at-nav[hidden],
  .header-right .g-nav[hidden]{display:flex !important}
}
/* Mobile bar: brand | langs | hamburger (nav panel overlays) */
.header-right .lang-links{order:1}
.header-right .nav-toggle{flex:0 0 auto; order:2}

/* Shared premium hamburger — no Menüü box */
.nav-toggle{
  display:none;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  min-width:44px;
  min-height:44px;
  padding:0;
  margin:0;
  background:transparent;
  border:0;
  border-radius:4px;
  color:inherit;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.nav-toggle:focus-visible{
  outline:2px solid currentColor;
  outline-offset:3px;
}
.nav-toggle__bars{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  width:18px;
  height:14px;
  pointer-events:none;
}
.nav-toggle__bars span{
  display:block;
  width:100%;
  height:1.5px;
  border-radius:1px;
  background:currentColor;
  transform-origin:center;
  transition:transform .22s ease, opacity .18s ease;
}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars span:nth-child(1){
  transform:translateY(6.5px) rotate(45deg);
}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars span:nth-child(2){
  opacity:0;
}
.nav-toggle[aria-expanded="true"] .nav-toggle__bars span:nth-child(3){
  transform:translateY(-6.5px) rotate(-45deg);
}
.lang-links{
  display:grid;
  grid-template-columns:repeat(3, 2.5rem);
  align-items:center;
  justify-items:center;
  gap:0;
  margin:0;
  padding:0;
  list-style:none;
  flex:0 0 7.5rem;
  width:7.5rem;
  min-width:7.5rem;
  max-width:7.5rem;
}
.lang-links a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
  width:2.5rem;
  min-width:2.5rem;
  max-width:2.5rem;
  height:2.25rem;
  padding:0;
  text-decoration:none;
  color:inherit;
  opacity:.7;
  font-size:.78rem;
  font-weight:500;
  letter-spacing:.04em;
  border-radius:3px;
  line-height:1;
}
.lang-links a:hover{opacity:1}
.lang-links a[aria-current="page"]{
  opacity:1;
  font-weight:500; /* same weight — no box resize */
  text-decoration:underline;
  text-underline-offset:5px;
  text-decoration-thickness:1.5px;
}

/* Show-more / show-less — calm text+line control under gallery */
.tsa-gallery-block{display:flex; flex-direction:column; gap:0}
.tsa-gallery-block .tsa-gallery.is-extra{margin-top:22px}
.works-more-wrap{
  margin:1.5rem 0 0;
  text-align:center;
}
.works-more-btn,
.works-more-wrap [data-show-more]{
  appearance:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.45rem;
  min-height:0;
  min-width:0;
  margin:0;
  padding:.35rem .15rem;
  border:0;
  border-bottom:1px solid currentColor;
  border-radius:0;
  background:transparent !important;
  color:inherit;
  font:inherit;
  font-size:.92rem;
  letter-spacing:.02em;
  opacity:.78;
  cursor:pointer;
  box-shadow:none;
}
.works-more-btn:hover,
.works-more-wrap [data-show-more]:hover{opacity:1}
.works-more-btn:focus-visible{
  outline:2px solid var(--accent, #8A6945);
  outline-offset:4px;
}
.tsa-gallery.is-extra[hidden],
.tsa-gallery[data-more][hidden]{display:none !important}

/* --- Centered form (~820 outer / ~740 fields) --- */
.form-section-center{
  width:min(820px, calc(100% - 2.5rem));
  margin-inline:auto;
}
.form-section-center h2{margin:0 0 .7rem}
.form-section-center .form-intro{
  margin:0 0 1.25rem;
  max-width:42rem;
  color:var(--muted, inherit);
}
.form-section-center .form-panel{
  width:min(740px, 100%);
  margin:0;
  padding:0;
  border:0;
  background:transparent;
}
.inquiry-form{
  display:grid;
  gap:1rem;
  margin-top:.25rem;
  width:100%;
  max-width:100%;
}
.form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1rem;
}
.field{min-width:0; max-width:100%}
.field label,
.field .label-text{
  display:block;
  margin-bottom:.35rem;
  font-size:.92rem;
}
/* Exclude file inputs from width:100% — root cause of horizontal overflow */
.field input:not([type="file"]):not([type="checkbox"]),
.field textarea,
.field select{
  width:100%;
  max-width:100%;
  min-height:50px;
  padding:.75rem .9rem;
  border:1px solid var(--line, rgba(0,0,0,.14));
  border-radius:7px;
  background:var(--field-bg, #fff);
  color:inherit;
  font:inherit;
  box-sizing:border-box;
}
.field textarea{min-height:150px; resize:vertical}
.field.has-error input:not([type="file"]),
.field.has-error textarea{border-color:#a65d52}
.err{color:#8f453c; font-size:.88rem; margin:.3rem 0 0}
.check{
  display:flex;
  gap:.65rem;
  align-items:flex-start;
}
.check input[type="checkbox"]{
  width:18px;
  height:18px;
  min-width:18px;
  margin:.2rem 0 0;
  flex:0 0 18px;
  accent-color:var(--accent, #8A6945);
}
.hp{position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden}
.turnstile-field{margin:.15rem 0 .25rem}
.turnstile-field .cf-turnstile{display:inline-block; max-width:100%}

/* File UI — visually hidden input that cannot expand the document */
.file-ui{
  position:relative;
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
  align-items:center;
  max-width:100%;
}
.file-ui__input{
  position:absolute;
  left:0;
  top:0;
  width:1px;
  height:1px;
  margin:0;
  padding:0;
  border:0;
  opacity:0;
  overflow:hidden;
  clip:rect(0, 0, 0, 0);
  clip-path:inset(50%);
  white-space:nowrap;
  pointer-events:none;
}
.btn-file{
  min-height:44px;
  padding:.55rem 1rem;
  background:transparent;
  color:inherit;
  border:1px solid var(--line, currentColor);
  border-radius:7px;
  cursor:pointer;
  font:inherit;
}
.file-ui__status{font-size:.9rem; opacity:.8}
.file-preview{display:flex; gap:.5rem; flex-wrap:wrap; margin-top:.5rem; max-width:100%}
.file-preview img{width:64px; height:64px; object-fit:cover; border-radius:4px}
.artwork-ref-box{
  display:flex;
  gap:.75rem;
  align-items:center;
  flex-wrap:wrap;
  padding:.65rem .75rem;
  border:1px solid var(--line, rgba(0,0,0,.12));
  border-radius:7px;
  max-width:100%;
}
.artwork-ref-box img{width:56px; height:56px; object-fit:cover; border-radius:4px}
.details-block{
  border:1px solid var(--line, rgba(0,0,0,.12));
  border-radius:8px;
  padding:.85rem 1rem;
}
.details-block summary{cursor:pointer; font-weight:500; font-size:.95rem}
.details-inner{display:grid; gap:1rem; margin-top:1rem}
.form-note{font-size:.92rem; opacity:.8; margin:.35rem 0 0}
.form-success,.form-error{
  padding:1rem 1.1rem;
  border-radius:7px;
  border:1px solid var(--accent, #8A6945);
  margin-bottom:1rem;
}
.form-error{border-color:#a65d52}
.btn.submit,
button.submit{
  min-height:50px;
  min-width:min(260px, 100%);
  padding:.75rem 1.4rem;
  background:var(--accent, #8A6945);
  color:var(--cta-ink, #fff);
  border:0;
  border-radius:7px;
  font:inherit;
  cursor:pointer;
}
.form-after{
  margin-top:1.5rem;
  color:var(--muted, inherit);
  font-size:.95rem;
}
.form-after .shipping-note{margin:0 0 .75rem}
.form-after .contact-line{margin:0}

@media (max-width:700px){
  .form-row{grid-template-columns:1fr}
  .btn.submit, button.submit{width:auto; min-width:0; max-width:min(92%, 18rem); justify-self:start}
}

/* --- Lightbox (scoped) --- */
.lightbox{
  position:fixed;
  inset:0;
  z-index:90;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:max(.75rem, env(safe-area-inset-top)) max(.75rem, env(safe-area-inset-right)) max(.75rem, env(safe-area-inset-bottom)) max(.75rem, env(safe-area-inset-left));
}
.lightbox[hidden]{display:none !important}
.lightbox .lb-backdrop{
  position:absolute;
  inset:0;
  background:rgba(18,20,22,.92);
  border:0;
  padding:0;
  cursor:zoom-out;
}
.lightbox .lb-shell{
  position:relative;
  z-index:1;
  width:min(1100px, 100%);
  display:grid;
  grid-template-columns:48px 1fr 48px;
  align-items:center;
  gap:.35rem;
}
.lightbox .lb-stage{
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.75rem;
}
.lightbox .lb-figure{margin:0; width:100%; display:flex; flex-direction:column; align-items:center}
.lightbox .lb-frame{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  max-height:min(72dvh, 78vh);
  background:transparent;
  padding:0;
}
.lightbox .lb-frame img{
  display:block;
  max-width:100%;
  max-height:min(72dvh, 78vh);
  width:auto;
  height:auto;
  object-fit:contain;
  border-radius:var(--art-radius, 8px);
  box-shadow:0 12px 40px rgba(0,0,0,.35);
}
.lightbox .lb-caption{
  display:flex;
  flex-wrap:wrap;
  gap:.75rem 1.25rem;
  justify-content:center;
  align-items:center;
  color:rgba(232,234,237,.9);
  width:100%;
}
.lightbox .lb-meta{display:flex; gap:.75rem; align-items:baseline; flex-wrap:wrap; justify-content:center}
.lightbox .lb-title{font-size:1rem}
.lightbox .lb-count{font-size:.85rem; opacity:.65}
.lightbox .lb-close,
.lightbox .lb-prev,
.lightbox .lb-next{
  width:44px;
  height:44px;
  border:0;
  border-radius:6px;
  cursor:pointer;
  background:rgba(255,255,255,.1);
  color:#fff;
  font-size:1.55rem;
  line-height:1;
}
.lightbox .lb-close{position:absolute; top:0; right:0; z-index:2}
.lightbox .lb-related{display:flex; gap:.5rem; flex-wrap:wrap; justify-content:center}
.lightbox .lb-related button{padding:0; border:0; background:transparent; cursor:pointer; border-radius:4px}
.lightbox .lb-related img{width:56px; height:56px; object-fit:cover; border-radius:4px; opacity:.85}

@media (max-width:900px){
  .lightbox .lb-shell{grid-template-columns:1fr; gap:.5rem}
  .lightbox .lb-prev,
  .lightbox .lb-next{position:absolute; top:50%; transform:translateY(-50%); z-index:2}
  .lightbox .lb-prev{left:0}
  .lightbox .lb-next{right:0}
}

/* FAQ narrow */
.tsa-narrow{width:min(820px, calc(100% - 2.5rem)); margin-inline:auto}

/* ============================================================
   Shared page rhythm — compact premium (all variants)
   Section padding ~48–56 desk; dense steps; moderated about.
   ============================================================ */
.tsa-h2,
.section-head h2,
.faq h2,
.form-section-center h2,
.ed-section h2,
.at-section h2,
.g-section h2,
.ed-about-copy h2,
.at-about-copy h2,
.g-about-copy h2{
  font-size:clamp(1.35rem, 1.8vw, 1.7rem);
  line-height:1.22;
  margin:0 0 .55rem;
}
.section-head{margin-bottom:1.1rem}
.section-head p,
.ed-intro,
.at-intro,
.g-intro,
.form-intro{
  margin:0 0 1rem;
  font-size:.98rem;
}

/* Dense 4-step commission row */
.tsa-steps,
.steps,
.ed-steps,
.at-steps,
.g-steps{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:.85rem;
  margin:1rem 0 0;
  padding:0;
  list-style:none;
}
.tsa-steps > *,
.steps > li,
.ed-steps > article,
.at-steps > li,
.g-steps > li{
  margin:0;
  padding:.15rem .1rem .35rem;
  border:0;
  border-radius:0;
  background:transparent;
  min-width:0;
}
.steps h3,
.ed-steps h3,
.at-steps strong,
.g-steps h3{
  font-size:1rem;
  line-height:1.25;
  margin:0 0 .3rem;
  font-weight:600;
}
.ed-step-n{
  display:block;
  font-size:.92rem;
  line-height:1;
  margin:0 0 .2rem;
  opacity:.9;
}
.steps p,
.ed-steps p,
.at-steps span,
.g-steps p{
  margin:0;
  font-size:.88rem;
  line-height:1.45;
}

/* About: text-led, portrait moderated */
.about-grid,
.ed-about-grid,
.at-about-grid,
.g-about{
  display:grid;
  gap:clamp(1.35rem, 3vw, 2.25rem);
  align-items:start;
  width:100%;
}
/* var1: copy then portrait */
.about-grid{grid-template-columns:minmax(0, 1fr) minmax(0, 220px)}
/* var2–4: portrait then copy */
.ed-about-grid,
.at-about-grid,
.g-about{grid-template-columns:minmax(0, 220px) minmax(0, 1fr)}
.about-grid .prose,
.ed-about-copy,
.at-about-copy,
.g-about-copy{
  max-width:38rem;
  min-width:0;
}
.about-grid .art-plate--about,
.ed-about-grid .art-plate--about,
.at-about-grid .art-plate--about,
.g-about .art-plate--about{
  max-width:220px;
  width:100%;
  justify-self:start;
}
.about-grid .prose,
.ed-about-copy p,
.at-about-copy p,
.g-about-copy p{
  font-size:.96rem;
  line-height:1.55;
  margin:0;
  color:var(--muted, inherit);
}

@media (max-width:900px){
  .tsa-steps,
  .steps,
  .ed-steps,
  .at-steps,
  .g-steps{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:.75rem;
  }
  .about-grid,
  .ed-about-grid,
  .at-about-grid,
  .g-about{
    grid-template-columns:minmax(0, 1fr);
    justify-items:center;
    text-align:left;
  }
  .about-grid .art-plate--about,
  .ed-about-grid .art-plate--about,
  .at-about-grid .art-plate--about,
  .g-about .art-plate--about{
    max-width:200px;
    margin-inline:auto;
    justify-self:center;
  }
  .about-grid .prose,
  .ed-about-copy,
  .at-about-copy,
  .g-about-copy{
    max-width:40rem;
    width:100%;
  }
}
@media (max-width:520px){
  .tsa-steps,
  .steps,
  .ed-steps,
  .at-steps,
  .g-steps{grid-template-columns:minmax(0, 1fr)}
}

/* ============================================================
   Mobile premium (≤900 / ≤390 / ≤360) — all variants
   No header CTA; balanced stack; tidy gallery/form; stable langs
   ============================================================ */
html, body{overflow-x:clip; max-width:100%}
img, picture, video, canvas, svg{max-width:100%; height:auto}

@media (max-width:900px){
  .wrap{
    width:min(var(--max, 1180px), calc(100% - 2rem));
  }
  .header-right{
    gap:.35rem .45rem;
    flex:0 0 auto;
    align-items:center;
  }
  .header-right .nav,
  .header-right .ed-nav,
  .header-right .at-nav,
  .header-right .g-nav{
    flex:unset;
    gap:0;
    overflow:visible;
  }
  .nav-toggle{
    display:inline-flex;
    min-width:44px;
    min-height:44px;
    width:44px;
    height:44px;
    padding:0;
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
  }
  .lang-links{
    flex:0 0 7.5rem;
    width:7.5rem;
    min-width:7.5rem;
  }
  .lang-links a{
    min-height:40px;
    min-width:2.5rem;
  }
  /* Premium open menu panel */
  .header-right .nav,
  .header-right .ed-nav,
  .header-right .at-nav,
  .header-right .g-nav,
  .nav,
  .ed-nav,
  .at-nav,
  .g-nav{
    position:absolute;
    left:0;
    right:0;
    top:var(--header-h, 64px);
    z-index:35;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    padding:.55rem 0 .85rem;
    border-top:1px solid rgba(242,243,244,.1);
    box-shadow:0 18px 40px rgba(0,0,0,.28);
    background:inherit;
  }
  .site-header .nav{background:#252923}
  .ed-header .ed-nav{background:#1a1a1a}
  .at-header .at-nav{background:#1c1917}
  .v4 .g-nav,.g-header .g-nav{background:#16181c}
  .v5 .g-nav{background:#16191C}
  .header-right .nav a,
  .header-right .ed-nav a,
  .header-right .at-nav a,
  .header-right .g-nav a,
  .nav a,
  .ed-nav a,
  .at-nav a,
  .g-nav a{
    display:flex;
    align-items:center;
    min-height:48px;
    padding:.6rem 1rem;
    margin:0;
    font-size:1rem;
    letter-spacing:.03em;
  font-weight:400;
    white-space:normal;
    border-bottom:1px solid rgba(242,243,244,.08);
    text-decoration:none;
  }
  .header-right .nav a:last-child,
  .header-right .ed-nav a:last-child,
  .header-right .at-nav a:last-child,
  .header-right .g-nav a:last-child,
  .nav a:last-child,
  .ed-nav a:last-child,
  .at-nav a:last-child,
  .g-nav a:last-child{border-bottom:0}
  .nav[hidden],
  .ed-nav[hidden],
  .at-nav[hidden],
  .g-nav[hidden]{display:none!important}

  .hero-grid,
  .ed-hero-grid,
  .at-hero-grid,
  .g-hero-grid{
    gap:1.1rem !important;
  }
  .hero,
  .ed-hero,
  .at-hero,
  .g-hero{
    padding-top:22px;
    padding-bottom:26px;
  }
  .hero-cta,
  .ed-actions,
  .at-cta,
  .g-actions{
    display:flex;
    flex-direction:column;
    flex-wrap:nowrap;
    gap:.75rem;
    width:100%;
    max-width:92%;
    align-items:flex-start;
  }
  .hero-cta .btn,
  .ed-actions .ed-btn,
  .at-cta .at-btn{
    min-height:40px;
    width:100%;
    flex:0 0 auto;
    border-radius:5px;
    justify-content:center;
  }
  .g-actions .g-btn:not(.ghost){
    min-height:42px;
    width:auto;
    max-width:100%;
    flex:0 0 auto;
    border-radius:6px;
    justify-content:center;
  }
  .g-actions .g-btn.ghost{
    width:auto;
    min-height:0;
    flex:0 0 auto;
    border-radius:0;
    justify-content:flex-start;
  }
  .form-section-center{
    width:min(820px, calc(100% - 2rem));
  }
  .tsa-narrow{width:min(820px, calc(100% - 2rem))}
  .section,
  .ed-section,
  .at-section,
  .g-section{padding:36px 0}
}

@media (max-width:390px){
  .wrap{
    width:min(var(--max, 1180px), calc(100% - 1.5rem));
  }
  .form-section-center,
  .tsa-narrow{width:min(820px, calc(100% - 1.5rem))}
  .brand,
  .ed-brand,
  .at-brand,
  .g-brand{
    font-size:1.08rem;
    max-width:none;
    overflow:visible;
    text-overflow:clip;
    white-space:nowrap;
  }
  .header-right{gap:.2rem}
  .nav a,
  .ed-nav a,
  .at-nav a,
  .g-nav a{
    padding-inline:.75rem;
  }
  .hero-cta .btn,
  .hero-cta .btn-ghost,
  .ed-actions .ed-btn,
  .at-cta .at-btn{
    flex:1 1 100%;
    width:100%;
    border-radius:5px;
  }
  .g-actions .g-btn:not(.ghost){
    flex:0 0 auto;
    width:auto;
    max-width:100%;
    border-radius:6px;
  }
  .g-actions .g-btn.ghost{
    flex:0 0 auto;
    width:auto;
    border-radius:0;
  }
  .hero,
  .ed-hero,
  .at-hero,
  .g-hero{padding-top:18px;padding-bottom:22px}
  .tsa-gallery{gap:14px}
  .inquiry-form{gap:.9rem}
  .field input:not([type=file]):not([type=checkbox]),
  .field textarea,
  .field select{
    min-height:44px;
    font-size:16px; /* avoid iOS zoom */
  }
  .field textarea{min-height:120px}
}

@media (max-width:360px){
  .wrap{
    width:min(var(--max, 1180px), calc(100% - 1.25rem));
  }
  .form-section-center,
  .tsa-narrow{width:min(820px, calc(100% - 1.25rem))}
  .lang-links{
    grid-template-columns:repeat(3, 2.25rem);
    width:6.75rem;
    min-width:6.75rem;
    max-width:6.75rem;
    flex-basis:6.75rem;
  }
  .lang-links a{
    width:2.25rem;
    min-width:2.25rem;
  }
}

@media (prefers-reduced-motion:reduce){
  *{animation:none !important; transition:none !important}
}
