:root{
    --bg:#141130;
    --bg-alt:#1b1740;
    --bg-alt2:#231d52;
    --panel:#1e1a46;
    --crystal:#4fd3e8;
    --crystal-dim:#34a8bd;
    --amethyst:#a08fe0;
    --gold:#f6be3b;
    --emerald:#7ed07a;
    --rust:#dc9664;
    --castle-blue:#6090d8;
    --text:#f4f1ff;
    --text-muted:#a79fd1;
    --line: rgba(244,241,255,0.12);
    --radius: 14px;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--bg);
    color:var(--text);
    font-family:'Manrope', sans-serif;
    line-height:1.6;
    overflow-x:hidden;
  }
  h1,h2,h3,.display{
    font-family:'Cinzel', serif;
    letter-spacing:0.02em;
  }
  a{color:inherit; text-decoration:none;}
  img{max-width:100%; display:block;}
  .wrap{max-width:1180px; margin:0 auto; padding:0 28px;}
  .eyebrow{
    font-family:'Manrope', sans-serif;
    font-weight:800;
    letter-spacing:0.22em;
    text-transform:uppercase;
    font-size:0.72rem;
    color:var(--crystal);
  }
  ::selection{background:var(--amethyst); color:#14112b;}
  :focus-visible{outline:2px solid var(--crystal); outline-offset:3px;}

  /* ---------- facet divider ---------- */
  .facet-divider{
    width:100%; height:26px; line-height:0;
  }
  .facet-divider svg{width:100%; height:100%; display:block;}

  /* ---------- nav ---------- */
  header{
    position:sticky; top:0; z-index:50;
    background:rgba(20,17,48,0.86);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  .nav-inner{
    display:flex; align-items:center; justify-content:space-between;
    padding:14px 28px;
    max-width:1180px; margin:0 auto;
  }
  .brand{display:flex; align-items:center; gap:10px; font-family:'Cinzel',serif; font-weight:700; font-size:1.05rem;}
  .brand img{width:34px; height:34px; object-fit:contain;}
  nav.links{display:flex; gap:28px; font-size:0.86rem; font-weight:600;}
  nav.links a{color:var(--text-muted); transition:color .2s;}
  nav.links a:hover{color:var(--crystal);}
  .nav-social{display:flex; gap:14px;}
  .nav-social a{color:var(--text-muted); transition:color .2s;}
  .nav-social a:hover{color:var(--gold);}
  .nav-social svg{width:18px; height:18px;}
  @media (max-width:820px){
    nav.links{display:none;}
  }

  /* ---------- hero ---------- */
  .hero{
    position:relative;
    padding:96px 28px 80px;
    text-align:center;
    overflow:hidden;
    background:
      radial-gradient(ellipse 70% 60% at 50% 8%, rgba(111,224,232,0.16), transparent 60%),
      radial-gradient(ellipse 60% 50% at 80% 90%, rgba(171,147,240,0.14), transparent 60%),
      var(--bg);
  }
  .prism-glow{
    position:absolute; top:-120px; left:50%; transform:translateX(-50%);
    width:900px; height:900px;
    background:conic-gradient(from 0deg, rgba(79,211,232,0.10), rgba(160,143,224,0.10), rgba(246,190,59,0.08), rgba(126,208,122,0.08), rgba(220,150,100,0.07), rgba(79,211,232,0.10));
    filter:blur(60px);
    animation:spin 40s linear infinite;
    pointer-events:none;
  }
  @keyframes spin{ to{ transform:translateX(-50%) rotate(360deg);} }
  .hero-content{position:relative; z-index:2;}
  .hero-icon-ring{
    position:relative;
    width:220px; height:220px;
    margin:0 auto 8px;
  }
  .hero-icon-ring::before{
    content:"";
    position:absolute; inset:-30px;
    background:radial-gradient(circle, rgba(79,211,232,0.35) 0%, rgba(160,143,224,0.22) 40%, transparent 72%);
    filter:blur(18px);
    animation:pulse-glow 5s ease-in-out infinite;
  }
  @keyframes pulse-glow{
    0%,100%{ opacity:0.75; transform:scale(1); }
    50%{ opacity:1; transform:scale(1.06); }
  }
  .hero-icon{
    position:relative; width:100%; height:100%;
    filter:drop-shadow(0 0 46px rgba(79,211,232,0.5)) drop-shadow(0 0 90px rgba(160,143,224,0.3));
  }
  .hero-wordmark{
    width:min(600px, 92vw);
    margin:2px auto 22px;
    filter:drop-shadow(0 6px 30px rgba(79,211,232,0.25));
  }
  .hero h1{
    /* visually hidden but kept for SEO/accessibility; wordmark image is the visual title */
    position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
    clip:rect(0,0,0,0); white-space:nowrap; border:0;
  }
  .hero p.tagline{
    max-width:560px; margin:0 auto 34px;
    color:var(--text-muted);
    font-size:1.08rem;
  }
  .hero-ctas{display:flex; flex-wrap:wrap; gap:14px; justify-content:center; margin-bottom:40px;}
  .btn{
    display:inline-flex; align-items:center; gap:8px;
    padding:13px 26px;
    border-radius:999px;
    font-weight:700; font-size:0.92rem;
    border:1px solid transparent;
    transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
    cursor:pointer;
  }
  .btn-primary{ background:linear-gradient(100deg, var(--crystal), var(--amethyst)); color:#141130; }
  .btn-primary:hover{ transform:translateY(-2px); box-shadow:0 10px 30px rgba(111,224,232,0.28); }
  .btn-ghost{ border-color:var(--line); color:var(--text); }
  .btn-ghost:hover{ border-color:var(--crystal); color:var(--crystal); transform:translateY(-2px); }
  .hero-socials{display:flex; gap:22px; justify-content:center;}
  .hero-socials a{color:var(--text-muted); transition:color .2s, transform .2s;}
  .hero-socials a:hover{color:var(--gold); transform:translateY(-2px);}
  .hero-socials svg{width:22px; height:22px;}

  /* ---------- generic section ---------- */
  section{padding:88px 0;}
  .alt{background:var(--bg-alt);}
  .section-head{max-width:640px; margin-bottom:48px;}
  .section-head h2{font-size:clamp(1.7rem,3.4vw,2.4rem); margin-top:10px; font-weight:700;}
  .section-head p{color:var(--text-muted); margin-top:14px; font-size:1.02rem;}

  /* ---------- about ---------- */
  .about-grid{
    display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center;
  }
  .about-copy p{color:var(--text-muted); margin-bottom:16px; font-size:1.02rem;}
  .about-copy p strong{color:var(--text); font-weight:700;}
  .stat-row{display:flex; gap:32px; margin-top:28px; flex-wrap:wrap;}
  .stat{border-left:2px solid var(--crystal); padding-left:14px;}
  .stat .num{font-family:'Cinzel',serif; font-size:1.5rem; font-weight:700; color:var(--gold);}
  .stat .label{font-size:0.82rem; color:var(--text-muted); text-transform:uppercase; letter-spacing:0.08em;}
  .crystal-frame{
    position:relative; border-radius:var(--radius);
    padding:3px;
    background:conic-gradient(from 120deg, var(--crystal), var(--amethyst), var(--gold), var(--emerald), var(--rust), var(--crystal));
  }
  .crystal-frame-inner{
    background:var(--bg-alt2); border-radius:calc(var(--radius) - 3px);
    padding:36px;
    display:flex; align-items:center; justify-content:center;
    overflow:hidden;
  }
  .crystal-frame-inner img{width:170px; height:170px; object-fit:contain;}
  .crystal-frame-inner.photo{ padding:0; }
  .crystal-frame-inner.photo img{
    width:100%; height:100%; min-height:340px;
    object-fit:cover; border-radius:calc(var(--radius) - 3px);
  }
  @media (max-width:860px){ .about-grid{grid-template-columns:1fr;} }

  /* ---------- shop ---------- */
  .shop-grid{display:grid; grid-template-columns:1fr 1fr; gap:26px;}
  .shop-card{
    position:relative;
    background:var(--panel);
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:34px;
    overflow:hidden;
    transition:transform .25s ease, border-color .25s ease;
  }
  .shop-card::before{
    content:"";
    position:absolute; inset:0;
    background:linear-gradient(120deg, transparent 30%, rgba(111,224,232,0.14) 45%, rgba(171,147,240,0.14) 55%, transparent 70%);
    transform:translateX(-120%);
    transition:transform .7s ease;
    pointer-events:none;
  }
  .shop-card:hover{ transform:translateY(-4px); border-color:rgba(111,224,232,0.4); }
  .shop-card:hover::before{ transform:translateX(120%); }
  .shop-tag{font-size:0.72rem; font-weight:800; letter-spacing:0.14em; text-transform:uppercase; padding:5px 12px; border-radius:999px; display:inline-block; margin-bottom:16px;}
  .tag-prints{background:rgba(78,203,138,0.15); color:var(--emerald);}
  .tag-cards{background:rgba(171,147,240,0.15); color:var(--amethyst);}
  .shop-card h3{font-size:1.4rem; margin-bottom:10px;}
  .shop-card p{color:var(--text-muted); margin-bottom:20px;}
  .shop-links{display:flex; flex-direction:column; gap:10px;}
  .shop-link{
    display:flex; align-items:center; justify-content:space-between;
    padding:12px 16px; border:1px solid var(--line); border-radius:10px;
    font-size:0.92rem; font-weight:600;
    transition:border-color .2s, color .2s, background .2s;
  }
  .shop-link:hover{border-color:var(--crystal); color:var(--crystal); background:rgba(111,224,232,0.06);}
  .shop-link .arrow{transition:transform .2s;}
  .shop-link:hover .arrow{transform:translateX(4px);}
  @media (max-width:860px){ .shop-grid{grid-template-columns:1fr;} }

  /* ---------- videos carousel ---------- */
  .video-group-label{
    font-family:'Cinzel',serif; font-weight:700; font-size:1.02rem;
    color:var(--text); margin:26px 0 10px;
  }
  .video-carousel-wrap{ overflow:hidden; padding:6px 0 10px; max-width:1180px; margin:0 auto; }
  .video-carousel{
    display:flex; gap:20px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    padding:6px 28px 20px;
    scrollbar-width:thin;
    scrollbar-color:var(--amethyst) transparent;
  }
  .video-carousel::-webkit-scrollbar{ height:8px; }
  .video-carousel::-webkit-scrollbar-thumb{ background:var(--amethyst); border-radius:99px; }
  .video-card{
    flex:none;
    width:260px;
    scroll-snap-align:start;
    cursor:pointer;
    transition:transform .2s ease;
  }
  .video-card:hover{ transform:translateY(-4px); }
  .video-thumb{
    position:relative;
    width:100%;
    aspect-ratio:16/9;
    border-radius:12px;
    overflow:hidden;
    border:1px solid var(--line);
    background:var(--panel);
  }
  .video-card.is-short .video-thumb{ aspect-ratio:9/16; }
  .video-thumb img{ width:100%; height:100%; object-fit:cover; }
  .video-thumb iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
  .play-btn{
    position:absolute; inset:0; margin:auto; width:52px; height:52px;
    background:none; border:none; padding:0; cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    transition:transform .2s ease;
  }
  .video-card:hover .play-btn{ transform:scale(1.1); }
  .play-btn svg{ width:100%; height:100%; }
  .short-badge{
    position:absolute; top:10px; right:10px;
    background:var(--amethyst); color:#14112b;
    font-size:0.68rem; font-weight:800; letter-spacing:0.05em;
    padding:3px 9px; border-radius:999px;
  }
  .video-caption{
    margin-top:10px; font-size:0.88rem; font-weight:600; color:var(--text-muted);
  }
  @media (max-width:640px){
    .video-card{ width:210px; }
  }

  /* ---------- partners / affiliate ---------- */
  .code-banner{
    display:flex; align-items:center; gap:12px; flex-wrap:wrap;
    background:linear-gradient(100deg, rgba(246,187,66,0.14), rgba(171,147,240,0.10));
    border:1px solid rgba(246,187,66,0.35);
    border-radius:12px;
    padding:16px 22px;
    margin-bottom:34px;
  }
  .code-pill{
    font-family:'Cinzel',serif; font-weight:700; letter-spacing:0.06em;
    background:var(--gold); color:#141130;
    padding:5px 14px; border-radius:6px; font-size:0.9rem;
  }
  .partner-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
  .partner-card{
    background:var(--panel); border:1px solid var(--line); border-radius:var(--radius);
    overflow:hidden;
    transition:transform .2s, border-color .2s;
  }
  .partner-card:hover{transform:translateY(-3px); border-color:rgba(246,187,66,0.4);}
  .partner-visual{
    position:relative;
    height:118px;
    display:flex; align-items:center; justify-content:center;
    overflow:hidden;
  }
  .partner-visual::before{
    content:"";
    position:absolute; inset:0;
    background:
      radial-gradient(circle at 30% 30%, rgba(255,255,255,0.16), transparent 55%),
      var(--pv-color);
    opacity:0.9;
  }
  .partner-visual::after{
    content:"";
    position:absolute; inset:0;
    background:repeating-linear-gradient(120deg, rgba(255,255,255,0.05) 0 2px, transparent 2px 26px);
  }
  .partner-visual svg{
    position:relative; z-index:1;
    width:52px; height:52px;
    filter:drop-shadow(0 4px 10px rgba(0,0,0,0.35));
  }
  .partner-body{padding:22px 26px 26px;}
  .partner-card .discount{font-family:'Cinzel',serif; color:var(--gold); font-weight:700; font-size:1.1rem; margin-bottom:8px;}
  .partner-card h4{font-size:1.02rem; margin-bottom:8px;}
  .partner-card p{font-size:0.88rem; color:var(--text-muted); margin-bottom:16px;}
  .partner-card a{font-size:0.85rem; font-weight:700; color:var(--crystal);}
  @media (max-width:920px){ .partner-grid{grid-template-columns:1fr 1fr;} }
  @media (max-width:620px){ .partner-grid{grid-template-columns:1fr;} }

  /* ---------- sell your collection ---------- */
  .sell-wrap{
    display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center;
  }
  .steps{list-style:none; counter-reset:step;}
  .steps li{
    counter-increment:step;
    display:flex; gap:18px; margin-bottom:26px; align-items:flex-start;
  }
  .steps li::before{
    content:counter(step);
    font-family:'Cinzel',serif; font-weight:700;
    width:38px; height:38px; flex:none;
    border-radius:50%;
    border:1px solid var(--amethyst);
    color:var(--amethyst);
    display:flex; align-items:center; justify-content:center;
    font-size:0.95rem;
  }
  .steps li h4{font-size:1.02rem; margin-bottom:4px;}
  .steps li p{color:var(--text-muted); font-size:0.94rem;}
  .sell-card{
    background:var(--bg-alt2); border:1px solid var(--line); border-radius:var(--radius); padding:36px;
  }
  .sell-card h3{margin-bottom:10px; font-size:1.3rem;}
  .sell-card p{color:var(--text-muted); margin-bottom:22px; font-size:0.96rem;}
  .field{margin-bottom:16px;}
  .field label{display:block; font-size:0.82rem; font-weight:700; margin-bottom:6px; color:var(--text-muted); text-transform:uppercase; letter-spacing:0.06em;}
  .field input, .field select, .field textarea{
    width:100%; padding:12px 14px; border-radius:8px;
    background:var(--bg); border:1px solid var(--line); color:var(--text);
    font-family:'Manrope',sans-serif; font-size:0.94rem;
  }
  .field input:focus, .field select:focus, .field textarea:focus{border-color:var(--crystal); outline:none;}
  .field textarea{resize:vertical; min-height:90px;}
  @media (max-width:860px){ .sell-wrap{grid-template-columns:1fr;} }

  /* ---------- collab / contact ---------- */
  .contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:56px;}
  .contact-card{background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); padding:36px;}
  .contact-types{display:flex; flex-direction:column; gap:18px;}
  .contact-type{
    display:flex; gap:16px; padding:18px; border:1px solid var(--line); border-radius:12px;
  }
  .contact-type .icon{
    width:40px; height:40px; flex:none; border-radius:10px;
    display:flex; align-items:center; justify-content:center;
    background:rgba(111,224,232,0.12); color:var(--crystal);
  }
  .contact-type h4{font-size:1rem; margin-bottom:4px;}
  .contact-type p{color:var(--text-muted); font-size:0.9rem;}
  @media (max-width:860px){ .contact-grid{grid-template-columns:1fr;} }

  /* ---------- footer ---------- */
  footer{
    padding:48px 0 34px;
    border-top:1px solid var(--line);
    background:var(--bg);
  }
  .footer-inner{
    display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:20px;
  }
  .footer-brand{display:flex; align-items:center; gap:10px; font-family:'Cinzel',serif; font-weight:700;}
  .footer-brand img{width:28px; height:28px;}
  footer .foot-social{display:flex; gap:18px;}
  footer .foot-social a{color:var(--text-muted); transition:color .2s;}
  footer .foot-social a:hover{color:var(--crystal);}
  footer .foot-social svg{width:19px; height:19px;}
  .foot-note{font-size:0.8rem; color:var(--text-muted); margin-top:22px; text-align:center;}

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

/* ---------- shared page hero (subpages) ---------- */
.page-hero{
  position:relative;
  padding:72px 28px 60px;
  text-align:center;
  overflow:hidden;
  background:
    radial-gradient(ellipse 70% 60% at 50% 8%, rgba(111,224,232,0.14), transparent 60%),
    radial-gradient(ellipse 60% 50% at 80% 90%, rgba(171,147,240,0.12), transparent 60%),
    var(--bg);
}
.page-hero .prism-glow{ width:700px; height:700px; top:-180px; }
.page-hero-content{ position:relative; z-index:2; }
.page-hero .eyebrow{ display:block; margin-bottom:10px; }
.page-hero h1{
  font-size:clamp(2rem, 5vw, 3.2rem);
  font-weight:800;
  background:linear-gradient(100deg, var(--crystal) 0%, var(--amethyst) 45%, var(--gold) 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  line-height:1.1; margin-bottom:16px;
}
.page-hero p.tagline{ max-width:560px; margin:0 auto; color:var(--text-muted); font-size:1.04rem; }
.breadcrumb{
  display:inline-flex; align-items:center; gap:8px;
  font-size:0.82rem; color:var(--text-muted); margin-bottom:18px;
}
.breadcrumb a{ color:var(--crystal); font-weight:600; }

/* ---------- home explore grid ---------- */
.explore-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.explore-card{
  position:relative;
  background:var(--panel); border:1px solid var(--line); border-radius:var(--radius);
  padding:30px; overflow:hidden;
  transition:transform .22s ease, border-color .22s ease;
  display:flex; flex-direction:column;
}
.explore-card::before{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(120deg, transparent 30%, rgba(111,224,232,0.12) 45%, rgba(171,147,240,0.12) 55%, transparent 70%);
  transform:translateX(-120%);
  transition:transform .7s ease;
  pointer-events:none;
}
.explore-card:hover{ transform:translateY(-4px); border-color:rgba(111,224,232,0.4); }
.explore-card:hover::before{ transform:translateX(120%); }
.explore-icon{
  width:46px; height:46px; margin-bottom:18px;
  display:flex; align-items:center; justify-content:center;
  border-radius:12px;
  background:rgba(111,224,232,0.12); color:var(--crystal);
}
.explore-card h3{ font-size:1.18rem; margin-bottom:8px; }
.explore-card p{ color:var(--text-muted); font-size:0.92rem; margin-bottom:18px; flex:1; }
.explore-card .explore-link{ font-size:0.88rem; font-weight:700; color:var(--crystal); display:inline-flex; align-items:center; gap:6px; }
.explore-card:hover .explore-link .arrow{ transform:translateX(4px); }
.explore-link .arrow{ transition:transform .2s; }
@media (max-width:920px){ .explore-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:620px){ .explore-grid{ grid-template-columns:1fr; } }

/* ---------- print catalog ---------- */
.catalog-toolbar{
  display:flex; gap:14px; flex-wrap:wrap; align-items:center;
  margin-bottom:30px;
}
.catalog-search{
  flex:1; min-width:220px;
  display:flex; align-items:center; gap:10px;
  background:var(--panel); border:1px solid var(--line); border-radius:10px;
  padding:12px 16px;
}
.catalog-search svg{ width:18px; height:18px; color:var(--text-muted); flex:none; }
.catalog-search input{
  flex:1; background:none; border:none; color:var(--text); font-family:'Manrope',sans-serif; font-size:0.95rem;
}
.catalog-search input:focus{ outline:none; }
.catalog-select{
  background:var(--panel); border:1px solid var(--line); border-radius:10px;
  padding:12px 16px; color:var(--text); font-family:'Manrope',sans-serif; font-size:0.92rem;
}
.catalog-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.print-card{
  background:var(--panel); border:1px solid var(--line); border-radius:var(--radius);
  overflow:hidden; transition:transform .2s, border-color .2s;
  display:flex; flex-direction:column;
}
.print-card:hover{ transform:translateY(-3px); border-color:rgba(111,224,232,0.4); }
.print-thumb{ width:100%; aspect-ratio:1; background:var(--bg-alt2); display:flex; align-items:center; justify-content:center; overflow:hidden; }
.print-thumb img{ width:100%; height:100%; object-fit:cover; }
.print-body{ padding:16px 18px 20px; display:flex; flex-direction:column; gap:8px; flex:1; }
.print-body h4{ font-size:0.98rem; }
.print-tag{ font-size:0.7rem; font-weight:700; letter-spacing:0.05em; text-transform:uppercase; color:var(--amethyst); }
.print-price{ font-family:'Cinzel',serif; font-weight:700; color:var(--gold); font-size:1.05rem; margin-top:auto; }
.print-buy{
  display:block; text-align:center; margin-top:10px;
  padding:10px; border-radius:8px; border:1px solid var(--line);
  font-size:0.86rem; font-weight:700; color:var(--text);
  transition:border-color .2s, color .2s, background .2s;
}
.print-buy:hover{ border-color:var(--crystal); color:var(--crystal); background:rgba(111,224,232,0.06); }
.catalog-empty{ text-align:center; padding:60px 20px; color:var(--text-muted); }
@media (max-width:980px){ .catalog-grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:700px){ .catalog-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:460px){ .catalog-grid{ grid-template-columns:1fr; } }
.hidden-page-note{
  background:rgba(246,190,59,0.1); border:1px solid rgba(246,190,59,0.35);
  border-radius:10px; padding:14px 20px; margin-bottom:30px;
  font-size:0.88rem; color:var(--text-muted);
}
.hidden-page-note strong{ color:var(--gold); }

/* ---------- shows / calendar ---------- */
.calendar-layout{ display:grid; grid-template-columns:1fr 320px; gap:22px; align-items:start; }
.calendar-frame{
  border-radius:var(--radius); overflow:hidden; border:1px solid var(--line);
  background:var(--panel);
}
.calendar-frame iframe{ width:100%; height:600px; border:0; display:block; }
.calendar-agenda{ display:flex; flex-direction:column; }
.calendar-agenda .agenda-label{
  font-family:'Cinzel',serif; font-weight:700; font-size:0.92rem;
  color:var(--text); padding:16px 18px 0;
}
.calendar-agenda iframe{ height:560px; }
@media (max-width:900px){
  .calendar-layout{ grid-template-columns:1fr; }
  .calendar-agenda iframe{ height:400px; }
}
.rec-shop-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:22px; margin-top:10px; }
.rec-shop-card{
  background:var(--panel); border:1px solid var(--line); border-radius:var(--radius);
  padding:26px;
}
.rec-shop-card h4{ font-size:1.1rem; margin-bottom:6px; }
.rec-shop-card .rec-loc{ font-size:0.86rem; color:var(--text-muted); margin-bottom:14px; }
.rec-shop-links{ display:flex; gap:12px; flex-wrap:wrap; }
.rec-shop-links a{
  font-size:0.85rem; font-weight:700; color:var(--crystal);
  border:1px solid var(--line); padding:8px 14px; border-radius:8px;
  transition:border-color .2s, background .2s;
}
.rec-shop-links a:hover{ border-color:var(--crystal); background:rgba(111,224,232,0.06); }

.schedule-note{
  font-size:0.78rem; color:var(--text-muted); font-style:italic;
  margin:18px 0 10px;
}
.schedule-list{ display:flex; flex-direction:column; border-top:1px solid var(--line); }
.schedule-row{
  display:flex; justify-content:space-between; align-items:baseline;
  gap:12px; padding:10px 0; border-bottom:1px solid var(--line);
  font-size:0.9rem;
}
.schedule-day{ font-weight:700; color:var(--gold); flex:none; width:44px; }
.schedule-event{ flex:1; color:var(--text); }
.schedule-time{ color:var(--text-muted); font-size:0.85rem; flex:none; }
@media (max-width:760px){ .rec-shop-grid{ grid-template-columns:1fr; } }

/* ---------- find-us (physical shop partners) ---------- */
.findus-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:22px; margin-top:10px; }
.findus-card{
  background:var(--panel); border:1px solid var(--line); border-radius:var(--radius);
  padding:26px;
}
.findus-logo{
  width:64px; height:64px; border-radius:50%; object-fit:cover;
  margin-bottom:14px; border:2px solid var(--line);
}
.findus-card h4{ font-size:1.1rem; margin-bottom:6px; }
.findus-card .findus-loc{ font-size:0.86rem; color:var(--text-muted); margin-bottom:14px; }
.findus-card a{
  font-size:0.85rem; font-weight:700; color:var(--crystal);
}
@media (max-width:760px){ .findus-grid{ grid-template-columns:1fr; } }
