/* ==========================================================================
   Arshan – Elements showcase pages (elements/*.html)
   Page chrome for presenting components. Not needed on live sites.
   ========================================================================== */

.el-page { background: #f6f7fd; }
/* page chrome, intro and labels share the standard container so they line up with every section */

/* Intro --------------------------------------------------------------- */
.el-intro { position: relative; overflow: hidden; padding: 40px 0 28px; background:
  radial-gradient(600px 300px at 90% 0%, #ebe7ff, transparent 70%),
  radial-gradient(500px 260px at 0% 0%, #eef1ff, transparent 70%); }
.el-intro__grid { display: grid; grid-template-columns: auto auto 1fr auto; align-items: center; gap: 36px; }
.el-brand { display: flex; align-items: center; gap: 14px; }
.el-brand svg { width: 58px; height: 58px; }
.el-brand strong { display: block; font-size: 32px; font-weight: 800; letter-spacing: 0; color: var(--ink); line-height: 1; }
.el-brand span { font-size: 15px; color: var(--muted); }
.el-count { padding: 8px 14px; border-radius: 12px; background: var(--primary-100); color: var(--primary); font-weight: 800; font-size: 22px; }
.el-title h1 { font-size: clamp(36px, 4.4vw, 58px); font-weight: 800; letter-spacing: 0; line-height: 1; }
.el-title h1 span { background: linear-gradient(90deg, #6d4cf0, #a855f7); -webkit-background-clip: text; background-clip: text; color: transparent; }
.el-title p { font-size: 19px; color: var(--ink-2); margin-top: 10px; }
.el-points { display: flex; gap: 0; }
.el-points li { display: flex; gap: 12px; padding: 0 22px; }
.el-points li + li { border-left: 1px solid var(--line); }
.el-points .icon { width: 28px; height: 28px; color: var(--primary); stroke-width: 1.5; }
.el-points strong { display: block; font-size: 18px; color: var(--ink); line-height: 1.2; }
.el-points span { font-size: 12px; color: var(--muted); line-height: 1.35; display: block; }
.el-note { position: absolute; right: 24px; top: 26px; font-family: "Caveat", "Segoe Print", cursive; font-size: 20px; line-height: 1.05; color: #8d82f3; transform: rotate(-8deg); text-align: center; }

/* Grid of showcase cards ---------------------------------------------- */
.el-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; align-items: start; padding-bottom: 80px; }
.showcase { position: relative; padding: 12px; background: #fff; border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow-sm); }
.showcase { z-index: 1; }
.showcase:hover, .showcase:focus-within, .showcase:has(.hdr.is-open) { z-index: 5; }
.showcase--full { grid-column: 1 / -1; }
.showcase__head { display: flex; align-items: center; gap: 14px; margin-bottom: 12px; padding-left: 4px; }
.showcase__num { display: grid; place-items: center; min-width: 32px; height: 26px; border-radius: 6px; background: var(--primary); color: #fff; font-size: 13px; font-weight: 700; }
.showcase__head h2 { font-size: 16px; font-weight: 600; letter-spacing: 0; }
.showcase__tag { padding: 3px 10px; border-radius: 6px; font-size: 12px; font-weight: 600; color: #fff; background: var(--primary); }
.showcase__tag--right { margin-left: auto; }
.showcase__tag--new { background: #e3f7ee; color: #16a571; border-radius: 99px; }
.showcase__tag--sale { background: #ffe6eb; color: #ef3e5c; border-radius: 99px; }
.showcase__code { margin-left: auto; font-size: 11.5px; color: var(--muted); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.showcase__tag--right + .showcase__code { margin-left: 10px; }

.stage { position: relative; padding: 8px; border-radius: 12px; background: #f5f6fc; }
.stage > .hdr, .stage > .stage__frame { border-radius: 12px; box-shadow: var(--shadow-sm); }
.stage > .hdr { border: 1px solid var(--line); }
.stage__frame { overflow: visible; background: #fff; border: 1px solid var(--line); }
.stage__frame > .hdr { border-radius: inherit; }
.stage__frame > :first-child { border-top-left-radius: 12px; border-top-right-radius: 12px; }
.stage__frame > :last-child { border-bottom-left-radius: 12px; border-bottom-right-radius: 12px; }

.stage--lavender { padding: 22px 20px; background: radial-gradient(400px 160px at 100% 0%, #dcd6ff, transparent 70%), linear-gradient(135deg, #f1efff, #e6e3ff); }
.stage--lavender > .hdr { border-radius: var(--radius-pill); }

/* Mountain photo stand-in (replace with a real image) */
.stage--mountain { padding: 14px; min-height: 120px; overflow: hidden; background:
  linear-gradient(180deg, rgba(14,16,30,.25), rgba(14,16,30,.55)),
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 800 200' preserveAspectRatio='none'%3E%3Cdefs%3E%3ClinearGradient id='s' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%23545a6e'/%3E%3Cstop offset='1' stop-color='%23b7a99a'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect width='800' height='200' fill='url(%23s)'/%3E%3Cpath d='M0 170 120 120 210 150 330 80 420 140 520 60 610 130 700 100 800 140V200H0Z' fill='%23383c4c'/%3E%3Cpath d='M0 190 150 150 260 175 380 120 470 165 560 110 680 160 800 150V200H0Z' fill='%2321242f'/%3E%3Cpath d='M520 60 545 85 530 82 520 95 508 80 495 88Z' fill='%23e6e6ee' opacity='.7'/%3E%3C/svg%3E") center / cover; }
.stage--mountain > .hdr { border-radius: 12px; }

/* Fashion banner stand-in */
.promo-banner { position: relative; display: grid; grid-template-columns: 1fr 1.3fr; min-height: 104px; overflow: hidden; background: #ece4da; }
.promo-banner__copy { padding: 14px 32px; }
.promo-banner__copy small { font-size: 11px; color: #5b5048; }
.promo-banner__copy h3 { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 500; font-size: 26px; letter-spacing: .01em; color: #2a2420; line-height: 1.1; margin: 2px 0 4px; }
.promo-banner__copy p { font-size: 12.5px; color: #5b5048; }
.promo-banner__media { position: relative; background: linear-gradient(90deg, #ece4da 0%, #d8cbbb 45%, #cbb9a5 100%); }
.promo-banner__media::after { content: ""; position: absolute; right: 12%; bottom: 0; width: 150px; height: 100%; background:
  radial-gradient(ellipse 15% 13% at 50% 30%, #c98f6e 0 70%, transparent 72%),
  radial-gradient(ellipse 26% 22% at 50% 26%, #3a2a22 0 70%, transparent 72%),
  radial-gradient(ellipse 22% 4% at 50% 28%, #1d1a18 0 70%, transparent 72%),
  radial-gradient(ellipse 44% 56% at 50% 100%, #e9dcc8 0 70%, transparent 72%); }
.promo-banner__media .btn { position: absolute; left: 6%; top: 50%; transform: translateY(-50%); height: 36px; padding: 0 16px; font-size: 12px; border-radius: 4px; --btn-bg: #1d1a18; }

/* Footer note --------------------------------------------------------- */
.el-foot { padding: 0 0 56px; text-align: center; color: var(--muted); font-size: 13px; }
.el-foot code { padding: 2px 6px; border-radius: 4px; background: #eceafe; color: var(--primary); font-size: 12px; }

.el-note { display: none; }
@media (min-width: 1640px) { .el-note { display: block; } .el-intro__grid { padding-right: 190px; } }

/* One full-width showcase per row, so every section is previewed at real page width */

@media (max-width: 1199px) {
  .el-intro__grid { grid-template-columns: auto 1fr; }
  .el-points { grid-column: 1 / -1; }
  .el-count { display: none; }
}
@media (max-width: 767px) {
  .el-intro__grid { grid-template-columns: 1fr; gap: 20px; }
  .el-points { flex-direction: column; gap: 14px; }
  .el-points li { padding: 0; }
  .el-points li + li { border-left: 0; }
  .showcase { padding: 10px; }
  .showcase__code { display: none; }
  .promo-banner { grid-template-columns: 1fr; }
  .promo-banner__media { min-height: 90px; }
}

/* Footer styles page ---------------------------------------------------- */
.el-intro__grid--footers { grid-template-columns: auto 1fr auto; padding-right: 0 !important; }
.el-intro__grid--footers .el-title h1 span { margin-right: .1em; }
.el-intro__grid--footers .el-title p { font-size: 17px; color: var(--muted); }
.el-checks { display: flex; flex-wrap: wrap; gap: 10px 28px; }
.el-checks li { display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--ink-2); }
.el-checks .check { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--primary); color: #fff; }
.el-checks .check .icon { width: 12px; height: 12px; stroke-width: 2.6; }
.el-grid--3 .stage { overflow: hidden; }
.el-grid--3 .stage > .ftr { border-radius: 12px; border: 1px solid var(--line); box-shadow: var(--shadow-sm); }

@media (max-width: 1599px) { .el-intro__grid--footers { grid-template-columns: auto 1fr; } .el-checks { grid-column: 1 / -1; } }
@media (max-width: 767px) { .el-intro__grid--footers { grid-template-columns: 1fr; } .el-checks { flex-direction: column; } }

/* Mega menu page: panels need full width, so one showcase per row */
.el-grid--mega { grid-template-columns: minmax(0, 1fr) !important; }

/* Hero page */

.el-grid--heroes .stage { overflow: hidden; }
.el-grid--heroes .stage > .hs, .el-grid--heroes .stage > .ab { border-radius: 12px; border: 1px solid var(--line); }

/* Elements index (elements/index.html) ---------------------------------- */
.el-group { padding-bottom: 40px; }
.el-group__title { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.el-group__title::after { content: ""; flex: 1; height: 1px; background: var(--line); }
.el-index { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
.el-link { position: relative; display: flex; flex-direction: column; gap: 6px; padding: 20px 22px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-sm); color: var(--ink); transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.el-link:hover, .el-link:focus-visible { transform: translateY(-3px); border-color: var(--primary-100); box-shadow: var(--shadow); }
.el-link strong { font-size: 16px; font-weight: 600; padding-right: 64px; }
.el-link span { font-size: 13.5px; line-height: 1.5; color: var(--muted); }
.el-link em { position: absolute; top: 18px; right: 18px; padding: 3px 9px; border-radius: var(--radius-pill); background: var(--primary-50); color: var(--primary); font-size: 12px; font-weight: 600; font-style: normal; }
.el-link .icon { width: 18px; height: 18px; margin-top: 4px; color: var(--primary); transition: transform .25s ease; }
.el-link:hover .icon { transform: translateX(4px); }
@media (max-width: 767px) { .el-index { grid-template-columns: 1fr; } }

/* Site header + footer on element pages ----------------------------------
   The global header already carries the logo, so the intro drops its
   duplicate brand mark and the title leads. */
.el-page .el-intro__grid > .el-brand { display: none; }
.el-page .el-intro__grid { grid-template-columns: auto minmax(0, 1fr) auto; }
.el-page .el-intro__grid:not(:has(.el-count)) { grid-template-columns: minmax(0, 1fr) auto; }
@media (max-width: 1199px) { .el-page .el-intro__grid { grid-template-columns: minmax(0, 1fr); } .el-page .el-intro__grid > .el-points { grid-column: auto; } }
.el-page .el-intro__grid--footers { grid-template-columns: minmax(0, 1fr); gap: 18px; }
.el-page .site-footer { margin-top: 24px; }
@media (max-width: 767px) { .el-page .el-intro__grid { grid-template-columns: minmax(0, 1fr); } }


/* Live-page presentation ----------------------------------------------------
   Each section renders edge to edge exactly as it would on a real page: no
   card frame, full-width background, content held to the site container.
   Only the small "01 · Name" label sits above it. */
.el-grid.container { max-width: none; padding-inline: 0; gap: 0; padding-bottom: 0; }
.el-grid .showcase { padding: 0; background: none; border: 0; border-radius: 0; box-shadow: none; }
.el-grid .showcase__head {
  max-width: calc(var(--container) + var(--gutter) * 2); margin: 0 auto; padding: 40px var(--gutter) 16px;
}
.el-grid .stage { padding: 0; border-radius: 0; }
.el-grid .stage:not(.stage--mountain):not(.stage--lavender) { background: none; }
.el-grid .stage--mountain, .el-grid .stage--lavender { padding-block: 36px; min-height: 200px; background-size: cover; }
.el-grid .stage > .ab, .el-grid .stage > .hs, .el-grid .stage > .ftr, .el-grid .stage > .hdr, .el-grid .stage > .stage__frame {
  border-radius: 0 !important; border-inline: 0 !important; box-shadow: none !important;
}
.el-grid .stage > .ab, .el-grid .stage > .hs, .el-grid .stage > .ftr {
  border-block: 1px solid var(--line);
  padding-inline: max(var(--gutter), calc((100% - var(--container)) / 2));
}
.el-grid .stage > .ab { padding-block: clamp(56px, 7vw, 96px); }
.el-grid .stage > .hdr .hdr__bar, .el-grid .stage__frame > .hdr .hdr__bar {
  padding-inline: max(var(--gutter), calc((100% - var(--container)) / 2));
}
.el-grid .stage__frame { border-inline: 0; }
.el-grid .stage--lavender, .el-grid .stage--mountain { padding-inline: max(var(--gutter), calc((100% - var(--container)) / 2)); }
.el-grid .showcase:last-child { padding-bottom: 72px; }
