/* V5.0.8 storefront: show every real photo in full and give the site one visual rhythm. */
:root {
  --site-ink: #102b3b;
  --site-deep: #0b2130;
  --site-gold: #bd8742;
  --site-paper: #f7f5f0;
  --site-line: #dcdedb;
  --site-muted: #536471;
}

body { background: var(--site-paper); color: var(--site-ink); }
.public-header { max-width: none; min-height: 86px; padding: 16px max(24px, calc((100vw - 1240px) / 2)); background: #fff; border-color: var(--site-line); }
.public-header img { width: min(245px, 55vw); }
.public-header > a:last-child { padding: 11px 20px; border-radius: 8px; background: var(--site-deep); color: #fff; }
.public-footer { padding: 28px 20px; background: var(--site-deep); color: #d5e0e3; }
.public-footer a:hover { color: #f3c783; }
.public-main { max-width: 1240px; margin-top: 40px; }
.privacy-card { max-width: 900px; margin-inline: auto; border-color: var(--site-line); border-radius: 16px; box-shadow: 0 16px 42px #102b3b0a; }

.studio-home { --ink: var(--site-ink); --gold: #e7ad55; --paper: var(--site-paper); background: var(--site-paper); }
.studio-container { width: min(100% - 48px, 1240px); }
.studio-topline { background: var(--site-deep); color: #bfd0d6; }
.studio-topline > .studio-container { padding-block: 9px; }
.studio-nav { min-height: 88px; height: auto; margin-block: 14px; padding: 12px 24px; border: 1px solid var(--site-line); border-radius: 14px; background: #fff; box-shadow: 0 12px 32px #102b3b0a; }
.studio-nav-links a { color: #334c5b; }
.studio-nav-links a:hover { color: #9c6222; }
.studio-nav-cta { border-radius: 8px; border-color: var(--site-deep); color: var(--site-deep); }
.studio-nav-cta:hover { background: var(--site-deep); }
.studio-hero { background: radial-gradient(circle at 76% 35%, #1c4255 0%, #102d3f 37%, #0a1e2e 78%); }
.studio-hero:before { opacity: .25; }
.studio-hero-grid { min-height: 590px; gap: clamp(30px, 5vw, 72px); padding-block: 72px 76px; }
.studio-hero h1 { font-size: clamp(42px, 4.5vw, 70px); }
.studio-hero-copy > p { color: #d2dce0; }
.studio-button { border-radius: 8px; }
.studio-button-primary { background: #f0b84e; border-color: #f0b84e; }
.studio-button-primary:hover { background: #ffcf79; border-color: #ffcf79; }
.studio-hero-feature { height: 480px; border: 1px solid #ffffff35; border-radius: 14px; background: #122a3a; box-shadow: 0 22px 56px #0004; }
.studio-hero-feature:after,
.studio-hero-feature .studio-carousel-slide:after { display: none; }
.studio-hero-feature .studio-carousel-slide { transform: none; }
.studio-hero-feature .studio-carousel-slide > img { width: 100%; height: calc(100% - 94px); padding: 14px; object-fit: contain; object-position: center; background: #102735; }
.studio-feature-content { inset: auto 0 0; min-height: 94px; padding: 16px 155px 15px 22px; gap: 3px; background: #0a1f2e; }
.studio-feature-content strong { font-size: clamp(17px, 1.7vw, 23px); }
.studio-feature-link { display: inline-flex; justify-content: flex-start; gap: 10px; width: max-content; min-width: 0; padding: 0; border: 0; color: #f0c783; }
.studio-feature-link span { font-size: 14px; }
.studio-hero-feature .studio-carousel-controls { right: 18px; bottom: 27px; }
.studio-section { padding-block: 96px; }
.studio-section-heading { margin-bottom: 36px; }
.studio-section h2 { font-size: clamp(31px, 3.25vw, 48px); line-height: 1.26; }
.studio-section-heading > p { color: var(--site-muted); }
.studio-overline { color: #9b672a; }
.studio-service-grid { gap: 16px; }
.studio-service-card { min-height: 295px; border-radius: 14px; border-color: var(--site-line); box-shadow: 0 12px 32px #102b3b0a; }
.studio-service-symbol { border-radius: 12px; }
.studio-service-card .studio-text-link { margin-top: 16px; }
.studio-card-line { inset-inline: 28px; height: 2px; }
.studio-works { background: #0f2939; }
.studio-works-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.studio-work-card { border-color: #ffffff26; border-radius: 14px; background: #183748; }
.studio-work-image { aspect-ratio: 4 / 3; padding: 12px; background: #0d2231; }
.studio-work-image img { object-fit: contain; object-position: center; }
.studio-work-card figcaption { padding: 20px 22px 24px; }
.studio-work-card figcaption > strong { margin: 9px 0; }
.studio-work-card figcaption p { line-height: 1.7; }
.studio-text-link { border-color: var(--site-gold); }
.studio-products { border-top: 0; }
.studio-product-categories { gap: 12px; }
.studio-product-categories > div { min-height: 132px; padding: 21px 22px; border: 1px solid var(--site-line); border-radius: 12px; background: #fff; }
.studio-product-categories h3 { margin: 8px 0 4px; font-size: 18px; }
.studio-product-categories p { font-size: 13px; line-height: 1.6; }
.studio-featured-products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-top: 24px; }
.studio-product-card { display: flex; flex-direction: column; border: 1px solid var(--site-line); border-radius: 16px; background: #fff; box-shadow: 0 16px 38px #102b3b0b; overflow: hidden; }
.studio-product-visual { position: relative; aspect-ratio: 16 / 10; background: #e9eae6; }
.studio-product-media,
.studio-product-placeholder { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 0; background: #e9eae6; }
.studio-product-media .studio-carousel-stage { position: absolute; inset: 14px 14px 38px; width: auto; height: auto; overflow: hidden; }
.studio-product-media .studio-carousel-slide { width: 100%; height: 100%; object-fit: contain; object-position: center; }
.studio-product-media .studio-carousel-controls { right: 12px; bottom: 10px; }
.studio-product-placeholder { display: grid; place-items: center; color: #55707c; font-size: 20px; letter-spacing: .12em; }
.studio-product-photo-label { position: absolute; left: 18px; bottom: 19px; color: #49616c; font-size: 11px; font-weight: 800; letter-spacing: .05em; pointer-events: none; }
.studio-product-card > .studio-product-body { display: flex; flex: 1; flex-direction: column; align-items: flex-start; gap: 8px; padding: 27px 30px 30px; }
.studio-product-card h3 { margin: 0; color: var(--site-ink); font-size: clamp(20px, 1.7vw, 25px); }
.studio-product-card .studio-product-excerpt { display: -webkit-box; max-width: 52ch; min-height: 3.5em; overflow: hidden; color: var(--site-muted); line-height: 1.75; white-space: normal; overflow-wrap: anywhere; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; }
.studio-product-card .studio-text-link { margin-top: auto; padding-top: 14px; font-size: 14px; }
.studio-product-card .studio-text-link span { font-size: 18px; }
.studio-product-note { margin-top: 24px; }
.studio-case { border-radius: 14px; }
.studio-about { border-color: var(--site-line); }
.studio-process { background: #eceae4; border-color: var(--site-line); }
.studio-contact { background: #102e40; }
.studio-contact-panel { border-radius: 14px; }
.studio-faq-list details { border-color: var(--site-line); }
.studio-footer { background: var(--site-deep); }
.studio-home a:focus-visible { outline-color: #e6ab50; }

.public-detail { max-width: 1100px; margin: 48px auto 88px; padding: clamp(24px, 4vw, 56px); border: 1px solid var(--site-line); border-radius: 18px; background: #fff; box-shadow: 0 20px 48px #102b3b0a; }
.public-detail-eyebrow { color: #a16d2f; letter-spacing: .13em; text-transform: uppercase; }
.public-detail h1 { margin: 10px 0 24px; color: var(--site-ink); font-size: clamp(30px, 4vw, 50px); }
.public-detail h2 { color: var(--site-ink); }
.public-detail-lead { color: #435965; }
.public-detail-image { display: block; max-height: 680px; margin: 26px auto; padding: 16px; object-fit: contain; border-radius: 12px; background: #e9eae6; }
.public-detail-note { border-radius: 0 8px 8px 0; }
.public-detail-actions a { border-radius: 8px; border-color: var(--site-deep); color: var(--site-deep); }
.public-detail-actions a:first-child { background: var(--site-deep); }
.public-detail-contact { margin-top: 34px; padding-top: 20px; border-top: 1px solid var(--site-line); color: var(--site-muted); }
.public-product-detail { max-width: 1240px; }
.public-product-layout { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(310px, .88fr); gap: clamp(26px, 4vw, 56px); align-items: start; }
.public-product-gallery-wrap { min-width: 0; }
.public-product-gallery { width: 100%; height: auto; aspect-ratio: 1 / 1; margin: 0; border: 1px solid var(--site-line); border-radius: 14px; background: #e9eae6; }
.public-product-gallery .studio-carousel-stage { position: absolute; inset: 16px; width: auto; height: auto; }
.public-product-gallery .studio-carousel-slide { object-fit: contain; object-position: center; transform: none; }
.public-product-gallery .studio-carousel-controls { border-radius: 8px; }
.public-product-no-image { display: grid; place-items: center; padding: 24px; color: #64747a; font-weight: 700; }
.public-product-image-note { margin: 11px 2px 0; color: var(--site-muted); font-size: 12px; letter-spacing: .06em; }
.public-product-summary { padding-top: 14px; }
.public-product-summary h1 { margin: 10px 0 22px; }
.public-product-summary .public-detail-lead { margin: 0; white-space: pre-line; overflow-wrap: anywhere; }
.public-product-prompt { margin: 30px 0 0; padding-top: 24px; border-top: 1px solid var(--site-line); color: var(--site-muted); }
.public-product-summary .public-detail-actions { margin-top: 22px; }
.public-product-summary .public-detail-note { margin-top: 28px; font-size: 13px; }
.public-product-information { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 44px; }
.public-product-information section { min-width: 0; padding: 25px 28px; border: 1px solid var(--site-line); border-radius: 12px; background: #faf9f6; }
.public-product-information section:first-child { grid-column: 1 / -1; }
.public-product-information h2 { margin: 0 0 14px; font-size: 18px; }
.public-product-information p { margin: 0; color: #435965; white-space: pre-line; overflow-wrap: anywhere; }
.public-product-back { display: inline-flex; min-height: 44px; align-items: center; margin-top: 28px; color: var(--site-deep); font-weight: 800; border-bottom: 2px solid var(--site-gold); }

@media (max-width: 1050px) {
  .studio-works-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .studio-featured-products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .studio-nav { gap: 18px; }
  .public-product-layout { grid-template-columns: minmax(0, 1fr) minmax(290px, .8fr); }
}
@media (max-width: 760px) {
  .studio-container { width: min(100% - 32px, 1240px); }
  .studio-nav { margin-block: 10px; padding: 10px 16px 15px; }
  .studio-nav-links { justify-content: flex-start; flex-wrap: wrap; gap: 8px 18px; }
  .studio-hero-grid { min-height: 0; padding-block: 56px 48px; }
  .studio-hero-feature { height: 380px; margin-top: 25px; }
  .studio-feature-content { min-height: 84px; padding: 12px 120px 12px 15px; }
  .studio-hero-feature .studio-carousel-slide > img { height: calc(100% - 84px); padding: 10px; }
  .studio-feature-content strong { font-size: 16px; }
  .studio-hero-feature .studio-carousel-controls { right: 9px; bottom: 24px; }
  .studio-section { padding-block: 70px; }
  .studio-works-grid,
  .studio-featured-products { grid-template-columns: 1fr; }
  .studio-work-image { aspect-ratio: 4 / 3; }
  .studio-product-visual { aspect-ratio: 4 / 3; }
  .studio-product-card > .studio-product-body { padding: 23px 22px 26px; }
  .studio-product-categories { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .studio-product-categories > div { padding: 17px; min-height: 120px; }
  .public-header { min-height: 70px; padding: 12px 16px; }
  .public-header > a:last-child { padding: 10px 12px; font-size: 13px; }
  .public-main { margin-top: 24px; }
  .public-detail { margin: 20px auto 56px; border-radius: 14px; }
  .public-product-layout { grid-template-columns: 1fr; gap: 20px; }
  .public-product-gallery { aspect-ratio: 4 / 3; }
  .public-product-summary { padding-top: 0; }
  .public-product-information { grid-template-columns: 1fr; margin-top: 28px; }
  .public-product-information section:first-child { grid-column: auto; }
}
@media (max-width: 390px) {
  .studio-container { width: min(100% - 28px, 1240px); }
  .studio-nav-links { gap: 7px 12px; }
  .studio-nav-links a { font-size: 11px; }
  .studio-hero-feature { height: 320px; }
  .studio-feature-content { padding-right: 110px; }
  .studio-product-categories { gap: 8px; }
  .studio-product-categories > div { padding: 14px; }
  .studio-product-categories h3 { font-size: 16px; }
  .public-product-information section { padding: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .studio-carousel-slide,
  .studio-work-image img,
  .studio-service-card { transition: none !important; transform: none !important; }
}
