/* The atelier theme extends the existing site and preserves its page components. */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Manrope:wght@400;500;600;700&display=swap');

body.atelier {
  --ink: #432039;
  --ink-soft: #765466;
  --ivory: #fffdf8;
  --paper: #fff0d9;
  --maroon: #b71460;
  --ruby: #db2475;
  --gold: #eb9c16;
  --gold-light: #ffd34f;
  --line: #f2c9da;
  --radius: 3px;
  --max-width: 1240px;
  --serif: 'Cormorant Garamond', Georgia, serif;
  --motion-ease: cubic-bezier(.2,.7,.2,1);
  background: var(--ivory);
  color: var(--ink);
  font-family: 'Manrope', 'Segoe UI', sans-serif;
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
}
body.atelier :focus-visible { outline: 3px solid #b58b46; outline-offset: 6px; }
body.atelier ::selection { color: #fff8e9; background: #db2475; }
body.atelier :is(.loader,.ambient-3d-layer,.hero-float-decor,.hero-canvas,.hero__glow,.hero__depth-field,.hero-portal,.floating-pattern,.booking__particle-field,.booking__halo,.connect-review__particle) { display: none; }
body.atelier .reveal, body.atelier [data-aos] { opacity: 1; transform: none; visibility: visible; }
body.atelier h1, body.atelier h2, body.atelier h3 { font-family: var(--serif); font-weight: 500; letter-spacing: -.025em; }
body.atelier .section-shell { width: min(1240px, calc(100% - 112px)); padding: 88px 0; margin-inline: auto; }
body.atelier .section-heading { max-width: 720px; margin: 0 0 42px; text-align: left; }
body.atelier .section-heading h2 { font-size: clamp(2.5rem, 4.5vw, 4rem); line-height: 1.07; margin: 12px 0 20px; color: var(--maroon); }
body.atelier .section-heading p:not(.section-kicker) { color: var(--ink-soft); max-width: 660px; line-height: 1.8; }
body.atelier .section-kicker, body.atelier .eyebrow { color: #b7470b; font-size: .75rem; font-weight: 600; letter-spacing: .19em; text-transform: uppercase; }
body.atelier .section-kicker::before { display: none; }
body.atelier .site-header { position: sticky; top: 0; inset-inline: 0; width: 100%; max-width: none; min-height: 94px; padding: 16px max(40px, calc((100vw - 1240px)/2)); border: 0; border-bottom: 1px solid #f5c7dc; border-radius: 0; background: #fffdf8f5; color: var(--maroon); box-shadow: none; backdrop-filter: blur(16px); transform: none; z-index: 50; }
body.atelier .site-header.is-scrolled { box-shadow: 0 4px 28px #35271b09; }
body.atelier .brand { gap: 13px; color: var(--maroon); flex-shrink: 0; }
body.atelier .brand__mark { width: 43px; height: 49px; border: 1px solid #ec5a9b; border-radius: 50% 50% 3px 3px; background: transparent; color: var(--maroon); box-shadow: none; font-family: var(--serif); font-weight: 500; font-size: 1.6rem; }
body.atelier .brand__text { display: grid; font-family: var(--serif); font-size: 1.7rem; font-weight: 600; line-height: 1; letter-spacing: -.025em; }
body.atelier .brand__text small { margin-top: 7px; font-family: 'Manrope', sans-serif; font-size: .75rem; font-weight: 500; text-transform: uppercase; letter-spacing: .23em; }
body.atelier .site-nav { gap: 26px; }
body.atelier .site-nav a { color: #755064; font-size: .8125rem; font-weight: 500; letter-spacing: .01em; }
body.atelier .site-nav a:hover { color: var(--maroon); }
body.atelier .site-nav a::after { background: var(--gold); }
body.atelier .site-nav .nav-cta { color: var(--maroon); background: transparent; border: 1px solid #e94491; border-radius: 2px; padding: 13px 20px; box-shadow: none; }
body.atelier .site-nav .nav-cta:hover { background: var(--maroon); color: var(--ivory); }
body.atelier .nav-toggle { border-color: #e99dbc; background: transparent; }
body.atelier .nav-toggle span { background: var(--maroon); }
body.atelier .btn { min-height: 50px; gap: 18px; padding: 15px 24px; border-radius: 2px; font-size: .8125rem; font-weight: 600; letter-spacing: .02em; box-shadow: none; transform: none; transition: background .25s, color .25s, transform .25s, box-shadow .25s; }
body.atelier .btn::before, body.atelier .btn::after { display: none; }
body.atelier .btn:hover { transform: translateY(-3px); box-shadow: 0 8px 18px #28131b16; }
body.atelier .btn--primary { color: #fff7e9; background: var(--maroon); border: 1px solid var(--maroon); }
body.atelier .btn--primary:hover { background: #df1b78; }
body.atelier .btn--outline { background: transparent; color: var(--maroon); border: 1px solid #e783ab; }
body.atelier .btn--ghost { background: transparent; color: var(--maroon); border-color: transparent; }
body.atelier .btn--light { color: var(--maroon); background: var(--ivory); border: 1px solid var(--ivory); }

/* Opening: quiet typography beside a photograph composition with real depth. */
.atelier-hero { position: relative; isolation: isolate; overflow: hidden; background: radial-gradient(ellipse at 73% 38%, #ffe06e 0, #fff5da 46%, #ffd9e9 100%); color: #faf3e4; }
.atelier-hero::before { content: ''; position: absolute; inset: 20px; border: 1px solid #c2a06a22; pointer-events: none; z-index: -1; }
.atelier-hero__inner { width: min(1240px, calc(100% - 112px)); min-height: 690px; margin: auto; padding: 62px 0 52px; display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: center; }
.atelier-hero__copy { position: relative; z-index: 3; padding-bottom: 18px; }
body.atelier .atelier-hero .eyebrow { display: flex; align-items: center; gap: 14px; color: #a74114; font-size: .75rem; margin: 0 0 25px; line-height: 1.6; }
.atelier-hero .eyebrow::before { content: ''; width: 32px; height: 1px; background: #eb8619; flex-shrink: 0; }
body.atelier .atelier-hero h1 { margin: 0; font-size: clamp(4rem, 6.3vw, 6rem); font-weight: 400; line-height: .99; letter-spacing: -.045em; color: #b71460; }
.atelier-hero h1 em { display: block; color: #ce4710; font-weight: 400; }
.atelier-hero__description { max-width: 385px; margin: 27px 0 29px; font-size: .9375rem; font-weight: 400; line-height: 1.85; color: #744857; }
.atelier-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; }
body.atelier .atelier-hero .btn--primary { background: #ffce3d; border-color: #ffce3d; color: #5a2434; }
body.atelier .atelier-hero .btn--primary:hover { background: #ffe36f; box-shadow: 0 8px 26px #0003; }
.atelier-link { display: inline-flex; gap: 17px; align-items: center; min-height: 44px; color: #a61b62; text-decoration: none; font-size: .8125rem; border-bottom: 1px solid #b49d713d; }
.atelier-link span { transition: transform .25s; }
.atelier-link:hover span { transform: translateX(5px); }
.atelier-hero__note { display: flex; align-items: center; gap: 12px; margin-top: 40px; color: #854b60; font-size: .75rem; letter-spacing: .06em; }
.atelier-hero__note span { color: #cb5f0a; font-size: 1.1rem; }
.atelier-art { --turn-x: 0deg; --turn-y: 0deg; position: relative; width: 100%; height: 556px; perspective: 1200px; }
.atelier-art__scene { position: absolute; inset: 0; transform-style: preserve-3d; transform: rotateX(var(--turn-x)) rotateY(var(--turn-y)); transition: transform .3s var(--motion-ease); }
.atelier-art__frame { position: absolute; width: 75%; height: 91%; top: 0; left: 15%; border: 1px solid #c8a66a75; border-radius: 48% 48% 4px 4px; transform: translateZ(-38px) rotate(7deg); }
.atelier-art__photo { position: absolute; top: 12px; right: 9%; width: 71%; height: 87%; padding: 7px; margin: 0; border: 1px solid #f4b925; border-radius: 49% 49% 3px 3px; background: #ffe47c; box-shadow: 22px 25px 50px #0005, inset 0 0 0 3px #36251f; transform: translateZ(26px) rotate(-3deg); }
.atelier-art__photo img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: 52% 45%; border-radius: inherit; filter: saturate(1.08); }
.atelier-art__detail { position: absolute; bottom: 5px; left: 0; margin: 0; width: 34%; height: 250px; padding: 7px 7px 37px; background: #fff5d9; box-shadow: 8px 18px 45px #0005; transform: translateZ(75px) rotate(-11deg); }
.atelier-art__detail img { display: block; width: 100%; height: 100%; object-fit: cover; filter: saturate(1.08); }
.atelier-art__detail figcaption { padding-top: 9px; color: #a93a5e; text-align: center; font-family: var(--serif); font-size: .9375rem; font-style: italic; }
.atelier-art__seal { position: absolute; right: 0; top: 43px; display: flex; width: 109px; height: 109px; flex-direction: column; align-items: center; justify-content: center; gap: 0; border: 1px solid #ffd347; outline: 1px solid #ffd34750; outline-offset: 5px; border-radius: 50%; color: #fff4bc; background: #d81770; box-shadow: 0 8px 24px #0002; transform: translateZ(65px) rotate(12deg); }
.atelier-art__seal span { font-size: .75rem; letter-spacing: .15em; text-transform: uppercase; }
.atelier-art__seal strong { font: 400 2.2rem var(--serif); line-height: 1.2; }
.atelier-art__caption { position: absolute; bottom: 10px; right: 5%; color: #ae2862; font-family: var(--serif); font-size: 1.1875rem; font-style: italic; transform: translateZ(40px); }
.atelier-art__index { position: absolute; right: -8px; top: 53%; font-size: .75rem; letter-spacing: .2em; text-transform: uppercase; writing-mode: vertical-rl; color: #a34b69; }
.atelier-hero__footer { max-width: 1240px; width: calc(100% - 112px); margin: auto; min-height: 64px; border-top: 1px solid #c2a06a2d; display: flex; align-items: center; justify-content: space-between; gap: 20px; color: #985273; font-size: .75rem; letter-spacing: .1em; }
.atelier-hero__footer a { color: #b01c64; text-decoration: none; padding-block: 12px; }
.atelier-hero__footer b { font-weight: 400; color: #a83d0d; }

/* Large photographs, numbered editorial cards, and a restrained colour rhythm. */
body.atelier .quick-facts { width: 100%; padding: 0 max(56px, calc((100vw - 1240px)/2)); border-bottom: 1px solid var(--line); background: #ffe066; }
body.atelier .quick-facts__panel { padding: 26px 0; background: none; border: 0; box-shadow: none; }
body.atelier .quick-facts :is(h2,.section-kicker) { display: none; }
body.atelier .quick-facts dl { display: grid; grid-template-columns: 1.4fr 1.2fr .7fr 1fr; gap: 26px; margin: 0; }
body.atelier .quick-facts dl > div { padding: 0 24px 0 0; background: none; border: 0; border-right: 1px solid #e8ae29; border-radius: 0; }
body.atelier .quick-facts dl > div:last-child { border: 0; }
body.atelier .quick-facts dt { font-size: .75rem; letter-spacing: .15em; font-weight: 600; text-transform: uppercase; color: #995300; }
body.atelier .quick-facts dd { margin: 7px 0 0; color: #74351a; font-size: .8125rem; line-height: 1.6; }
body.atelier .services > .section-heading { max-width: 760px; }
body.atelier .service-page-links { display: flex; flex-wrap: wrap; gap: 10px; margin: 36px 0 0; }
body.atelier .service-page-links a { padding: 9px 13px; border-radius: 0; background: transparent; border: 1px solid var(--line); color: #a32965; font-size: .75rem; box-shadow: none; }
body.atelier .service-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 36px 28px; perspective: 1500px; }
body.atelier .service-card { position: relative; padding: 0 0 24px; min-height: 0; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: transparent; box-shadow: none; transform: none; transform-style: preserve-3d; transition: transform .5s var(--motion-ease); }
body.atelier .service-card::before, body.atelier .service-card::after { display: none; }
body.atelier .service-card__media { aspect-ratio: 4/4.7; margin: 0 0 24px; border: 0; border-radius: 120px 120px 3px 3px; overflow: hidden; background: #ffe4c4; box-shadow: 0 12px 24px #39281c12; transform: translateZ(0); }
body.atelier .service-card:nth-child(3n + 2) .service-card__media { border-radius: 3px; }
body.atelier .service-card__media img { width: 100%; height: 100%; object-fit: cover; filter: saturate(1.05); }
body.atelier .service-card:hover { box-shadow: none; }
body.atelier .service-card:hover .service-card__media img { transform: scale(1.04); }
body.atelier .service-card__number { position: static; display: inline-block; color: #c9540c; font-family: var(--serif); font-size: 1rem; background: transparent; padding: 0; margin: 0 0 10px; transform: none; }
body.atelier .service-card h3 { margin: 0 0 10px; font-size: 1.875rem; color: var(--maroon); line-height: 1.1; }
body.atelier .service-card p { font-size: .875rem; color: var(--ink-soft); line-height: 1.75; margin: 0 0 16px; }
body.atelier .service-card__link { display: inline-flex; width: auto; margin: 0; padding: 8px 0; border: 0; border-bottom: 1px solid #ec8db5; border-radius: 0; background: none; box-shadow: none; color: var(--maroon); font-size: .75rem; font-weight: 600; }
body.atelier .service-card__link::after { content: '↗'; margin-left: 18px; }
body.atelier .service-card__link:hover { background: none; }
body.atelier .service-grid > :last-child:nth-child(3n + 1) { grid-column: auto; }
body.atelier .showcase { width: 100%; padding: 90px max(56px, calc((100vw - 1240px)/2)); background: linear-gradient(120deg, #ffd447, #ffae57 65%, #ff9474); color: #7a273f; }
body.atelier .showcase::before, body.atelier .showcase::after, body.atelier .showcase__visual::before, body.atelier .showcase-label { display: none; }
body.atelier .showcase__inner { padding: 0; border: 0; background: none; box-shadow: none; display: grid; grid-template-columns: 1fr 1fr; gap: 64px; }
body.atelier .showcase h2 { font-size: clamp(2.8rem,4vw,4rem); line-height: 1.05; color: #7a273f; }
body.atelier .showcase p { color: #7c3945; font-size: .9375rem; line-height: 1.9; }
body.atelier .showcase .section-kicker { color: #a04910; }
body.atelier .showcase__visual { min-height: 470px; }
body.atelier .hand-card-stack { height: 460px; transform: none; }
body.atelier .hand-card { width: 54%; height: 340px; top: 50px; padding: 7px; border: 1px solid #ffc833; border-radius: 130px 130px 3px 3px; background: #ee5993; box-shadow: 10px 20px 35px #20091466; }
body.atelier .hand-card:nth-child(1) { left: 0; transform: rotate(-10deg) translateZ(20px); }
body.atelier .hand-card:nth-child(2) { left: 25%; top: 5px; transform: rotate(4deg) translateZ(40px); }
body.atelier .hand-card:nth-child(3) { left: 47%; top: 92px; transform: rotate(13deg) translateZ(60px); }
body.atelier .hand-card img { height: 100%; object-fit: cover; border-radius: inherit; }
body.atelier .hand-card figcaption { bottom: 20px; }
body.atelier .hand-card figcaption span { border: 0; border-radius: 0; padding: 9px 13px; font-size: .75rem; background: #aa165ee8; }
body.atelier .gallery-stage { position: relative; padding: 0; border: 0; background: none; box-shadow: none; }
body.atelier .gallery-stage::before, body.atelier .gallery-stage::after { display: none; }
body.atelier .gallery-grid { display: flex; gap: 24px; padding: 10px 0 24px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: #b79968 #ebe2d3; transform: none; }
body.atelier .gallery-grid .gallery-card { flex: 0 0 31.8%; min-width: 0; scroll-snap-align: start; }
body.atelier .gallery-card { border-radius: 3px; padding: 0; background: #ffefd9; border: 0; box-shadow: none; }
body.atelier .gallery-grid .gallery-card { transform: none; }
body.atelier .gallery-card::before, body.atelier .gallery-card::after { display: none; }
body.atelier .gallery-card__media { height: 385px; aspect-ratio: auto; border: 0; border-radius: 0; }
body.atelier .gallery-card__media img { width: 100%; height: 100%; object-fit: cover; }
body.atelier .gallery-card__content { position: static; padding: 22px; background: transparent; }
body.atelier .gallery-card__content h3 { font-size: 1.8rem; color: var(--maroon); margin: 0 0 8px; }
body.atelier .gallery-card__content a { font-size: .75rem; color: #aa1c61; }
body.atelier .gallery-control { top: -77px; transform: none; width: 44px; height: 44px; border: 1px solid #e87aa7; background: transparent; color: var(--maroon); box-shadow: none; border-radius: 50%; }
body.atelier .gallery-control--prev { left: auto; right: 58px; }
body.atelier .gallery-control--next { right: 0; }
body.atelier .section-actions { gap: 14px; margin-top: 30px; }
body.atelier :is(.stat-card,.reason-card,.process-card,.answer-card,.review-card) { border: 0; border-top: 1px solid #f0a9c4; border-radius: 0; padding: 27px 0; color: var(--ink); background: transparent; box-shadow: none; transform: none; }
body.atelier :is(.stat-card,.reason-card,.process-card,.answer-card)::before, body.atelier :is(.stat-card,.reason-card,.process-card,.answer-card)::after { display: none; }
body.atelier :is(.stat-card,.reason-card,.process-card,.answer-card) h3 { color: var(--maroon); font-size: 1.65rem; line-height: 1.15; }
body.atelier :is(.stat-card,.reason-card,.process-card,.answer-card) p { color: var(--ink-soft); font-size: .875rem; line-height: 1.8; }
body.atelier :is(.trust-grid,.reason-grid) { gap: 30px; }
body.atelier .process-rail { display: grid; grid-template-columns: repeat(4,1fr); gap: 28px; perspective: none; }
body.atelier .process-rail::before { display: none; }
body.atelier .process-card { display: block; min-width: 0; }
body.atelier .process-card__icon { width: auto; height: auto; font: italic 400 3rem var(--serif); color: #d66412; border: 0; padding: 0; background: none; box-shadow: none; }
body.atelier .process-card__step { display: none; }
body.atelier .stat-card__icon { color: #c14475; background: none; border: 0; box-shadow: none; font-family: var(--serif); }
body.atelier .booking { padding-block: 20px 0; }
body.atelier .booking__inner { padding: 70px 8%; text-align: center; border: 1px solid #ffba42; outline: 1px solid #ffba423b; outline-offset: -12px; border-radius: 3px; background: #c51a6c; box-shadow: 0 20px 50px #35271b15; transform: none; }
body.atelier .booking__inner::before, body.atelier .booking__inner::after { display: none; }
body.atelier .booking__inner h2 { color: #fff9e7; font-size: clamp(2.6rem,4.5vw,4rem); line-height: 1.1; max-width: 700px; margin: 14px auto 22px; }
body.atelier .booking__inner p { color: #ffe8f2; }
body.atelier .booking__inner .section-kicker { color: #ffe16e; }
body.atelier .booking__actions { justify-content: center; }
body.atelier .booking__actions .btn--primary { background: #ffce3d; color: #5a2434; border-color: #ffce3d; }
body.atelier .booking__actions :is(.btn--outline,.btn--ghost) { color: #fff4dd; border-color: #ffd365; }
body.atelier :is(.booking-form-panel,.location__details,.map-panel,.business-summary__booking,.seo-local__inner,.quick-facts__panel,.instagram-feed__panel) { border-radius: 3px; box-shadow: none; }
body.atelier .booking-form-panel { border: 1px solid var(--line); background: #fff1d9; padding: 40px; }
body.atelier .booking-form-copy h3 { color: var(--maroon); font-size: 2.7rem; line-height: 1.08; }
body.atelier .booking-form-copy p { font-size: .9375rem; color: var(--ink-soft); }
body.atelier .booking-form :is(input,select,textarea) { border: 1px solid #ecc1d1; border-radius: 2px; background: #ffffff; padding: 13px; font-family: inherit; font-size: 1rem; color: var(--ink); box-shadow: none; }
body.atelier .booking-form label > span { color: #914266; font-size: .8125rem; font-weight: 500; }
body.atelier .faq-list { gap: 0; }
body.atelier .faq-list details { background: transparent; box-shadow: none; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; }
body.atelier .faq-list summary { padding: 24px 0; color: var(--maroon); font-size: 1rem; font-weight: 500; }
body.atelier .faq-list p { padding: 0 40px 24px 0; line-height: 1.8; }
body.atelier .faq-list summary::after { color: #d9588f; font-weight: 400; }
body.atelier .connect-review { background: #e5faf5; }
body.atelier .connect-review__inner { padding: 45px; border-radius: 3px; border: 1px solid #81d4c4; background: none; box-shadow: none; }
body.atelier .connect-review__inner::before, body.atelier .connect-review__inner::after { display: none; }
body.atelier .connect-review h2 { color: var(--maroon); }
body.atelier .qr-card { background: #fffdf8; border: 1px solid #a4e2d5; border-radius: 3px; box-shadow: none; transform: none; }
body.atelier .qr-card::before, body.atelier .qr-card__shine { display: none; }
body.atelier .qr-card h3 { color: var(--maroon); }
body.atelier .qr-card__code { box-shadow: none; }
body.atelier .qr-card p { color: var(--ink-soft); }
body.atelier .qr-card__eyebrow { color: #b7470b; }
body.atelier .seo-local__inner { border: 1px solid var(--line); background: #fff3e5; padding: 40px; }
body.atelier .seo-local h2, body.atelier .business-summary h2 { font-size: 2.5rem; }
body.atelier .business-facts { border: 1px solid var(--line); background: #fff3e5; border-radius: 3px; }
body.atelier .site-footer { margin-top: 50px; padding: 60px max(40px, calc((100vw - 1240px)/2)); background: #991757; color: #ffe0ee; border: 0; text-align: left; }
body.atelier .site-footer p { font: 400 2.75rem var(--serif); color: #fff1b6; margin: 0 0 22px; }
body.atelier .site-footer nav { justify-content: flex-start; gap: 12px 22px; padding: 24px 0; margin-bottom: 20px; border-block: 1px solid #b9a07930; }
body.atelier .site-footer a { color: #ffe0ee; font-size: .75rem; }
body.atelier .site-footer > span { font-size: .75rem; color: #fbc6df; line-height: 1.8; }
body.atelier .mobile-sticky-actions { background: #fffdf8f5; border-top: 1px solid #f0a9c4; padding-bottom: max(8px,env(safe-area-inset-bottom)); backdrop-filter: blur(12px); }
body.atelier .mobile-sticky-actions a { border-radius: 2px; background: var(--maroon); }
body.atelier .mobile-sticky-actions a:last-child { background: #ffd74a; color: var(--maroon); }

/* Service and contact pages share the same photographic, classic treatment. */
body.atelier .hero { min-height: 650px; padding: 70px max(56px, calc((100vw - 1240px)/2)); margin-top: 0; gap: 55px; background: #fff0d6; border-radius: 0; }
body.atelier .hero::before, body.atelier .hero::after, body.atelier .hero__visual::before { display: none; }
body.atelier .hero__content { padding: 0; }
body.atelier .hero h1 { color: #ae1859; font-size: clamp(2.8rem,4.8vw,4.9rem); font-weight: 400; line-height: 1.02; letter-spacing: -.035em; }
body.atelier .hero .eyebrow { color: #a74114; }
body.atelier .hero .hero__tagline { color: #825568; font-size: .9375rem; }
body.atelier .hero .btn--primary { background: #ffce3d; color: #5a2434; border-color: #ffce3d; }
body.atelier .hero :is(.btn--outline,.btn--ghost) { color: #fff4dd; }
body.atelier .hero .breadcrumb, body.atelier .hero .breadcrumb a { color: #ac502a; }
body.atelier .hero__visual { min-height: 450px; padding: 0; }
body.atelier .hero-photo-card { height: 465px; width: min(100%,370px); margin: auto; padding: 7px; border: 1px solid #f4b925; border-radius: 180px 180px 3px 3px; box-shadow: 15px 20px 45px #0003; background: #ffdf6b; transform: rotate(3deg); }
body.atelier .hero-photo-card img { width: 100%; height: 100%; border-radius: inherit; object-fit: cover; }
body.atelier .hero-photo-card figcaption { bottom: 22px; left: 18px; right: 18px; border-radius: 2px; padding: 14px; background: #a11860e6; }
body.atelier .hero-photo-card figcaption strong { font-family: var(--serif); font-size: 1.15rem; font-weight: 400; }

/* Reset legacy positioning where the layout is now in normal document flow. */
body.atelier { --header-height: 94px; overflow-x: clip; }
body.atelier main > section { scroll-margin-top: calc(var(--header-height) + 15px); }
body.atelier main > section:not(.atelier-hero)::before,
body.atelier main > section::after,
body.atelier .hand-card-stack::before,
body.atelier .hand-card-stack::after { display: none; }
body.atelier .brand__text { color: var(--maroon); }
body.atelier .service-card { overflow: visible; contain: none; }
body.atelier .service-card__media { height: auto; }
body.atelier .service-card__link { position: static; inset: auto; max-width: none; text-align: left; }
body.atelier .gallery-grid { align-items: stretch; }
body.atelier .gallery-card { min-height: 0; display: flex; flex-direction: column; }
body.atelier .gallery-card__media { min-height: 0; margin: 0; }
body.atelier .gallery-card__content { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; flex: 1; }
body.atelier .gallery-card__content a { margin-top: auto; }
body.atelier .service-sidebar { top: calc(var(--header-height) + 24px); background: #ffefd9; border: 1px solid #f4c557; box-shadow: none; padding: 30px; }
body.atelier .service-sidebar h2 { font-size: 2rem; }
body.atelier .service-copy h2 { font-size: 2.65rem; }
body.atelier .service-copy { gap: 23px; }
body.atelier .service-copy p { line-height: 1.85; }
body.atelier .service-inline-gallery figure:first-child { border-radius: 100px 100px 3px 3px; }
body.atelier .service-inline-gallery img { height: 100%; }
body.atelier .service-inline-gallery figure { border: 1px solid #f2adcd; padding: 5px; }
body.atelier .contact__card { background: #e7faf5; border: 1px solid #87d6c6; border-radius: 3px; box-shadow: none; }
body.atelier .thank-you-panel { border: 1px solid #f5b244; border-radius: 3px; background: #fff1d6; box-shadow: 0 25px 70px #39261a15; }
body.atelier .thank-you-panel h1 { color: var(--maroon); font-size: clamp(2.5rem,5vw,4rem); }
.atelier-art__seal span { max-width: 90px; text-align: center; letter-spacing: .075em; line-height: 1.25; }
body.atelier .quick-facts h2 { display: block; position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
body.atelier .quick-facts dt { color: #864005; }
body.atelier :is(.service-card,.reason-card,.process-card,.stat-card,.answer-card) p { font-size: 1rem; }
body.atelier .site-nav a, body.atelier .service-card__link { font-size: .875rem; }
body.atelier .gallery-card:focus-within { outline: 2px solid var(--gold); outline-offset: -2px; }

@media (min-width: 1001px) { body.atelier .nav-toggle { display: none; } }
@media (max-width: 1100px) {
  body.atelier .site-header { padding-inline: 28px; }
  body.atelier .site-nav { gap: 16px; }
  .atelier-hero__inner { min-height: 660px; }
  .atelier-art { height: 510px; }
  .atelier-art__detail { height: 215px; }
  .atelier-art__seal { width: 92px; height: 92px; }
}
@media (max-width: 1000px) {
  body.atelier { --header-height: 82px; }
  body.atelier .site-header { min-height: 82px; }
  body.atelier .nav-toggle { display: grid; }
  body.atelier .site-nav { position: absolute; display: none; top: 100%; right: 0; left: 0; width: 100%; padding: 25px 32px 30px; border: 0; border-bottom: 1px solid var(--line); background: #fffdf8fa; box-shadow: 0 22px 25px #24191a15; border-radius: 0; }
  body.atelier .site-nav.is-open { display: flex; flex-direction: column; align-items: stretch; }
  body.atelier .site-nav a { padding: 11px; font-size: .9375rem; }
  .atelier-hero__inner { width: calc(100% - 72px); gap: 0; }
  body.atelier .atelier-hero h1 { font-size: 4.5rem; }
  .atelier-art { height: 465px; }
  .atelier-art__detail { width: 39%; height: 190px; }
  .atelier-art__caption { font-size: 1rem; right: 0; }
  body.atelier .section-shell { width: calc(100% - 72px); padding-block: 68px; }
  body.atelier .quick-facts { width: 100%; padding: 0 36px; }
  body.atelier .showcase { width: 100%; padding: 68px 36px; }
  body.atelier .showcase__inner { gap: 28px; }
  body.atelier .showcase__visual { min-height: 400px; }
  body.atelier .hand-card { height: 295px; }
  body.atelier .service-grid { gap: 32px 24px; }
  body.atelier .service-card h3 { font-size: 1.75rem; }
  body.atelier .gallery-card__media { height: 310px; }
  body.atelier .hero { padding: 60px 36px; gap: 30px; }
}
@media (max-width: 720px) {
  body.atelier { --header-height: 76px; }
  body.atelier .site-header { min-height: 76px; padding: 12px 22px; }
  body.atelier .brand__text { font-size: 1.5rem; }
  body.atelier .brand__mark { height: 43px; width: 37px; font-size: 1.4rem; }
  body.atelier .brand__text small { font-size: .75rem; }
  .atelier-hero::before { inset: 12px; }
  .atelier-hero__inner { width: calc(100% - 48px); grid-template-columns: 1fr; padding-top: 48px; padding-bottom: 28px; gap: 34px; }
  .atelier-hero__copy { padding: 0 5px; }
  body.atelier .atelier-hero h1 { font-size: clamp(2.75rem,11.5vw,5.5rem); }
  body.atelier .atelier-hero .eyebrow { font-size: .75rem; margin-bottom: 23px; letter-spacing: .14em; }
  .atelier-hero__description { margin: 23px 0; max-width: 390px; }
  .atelier-hero__actions { gap: 20px; }
  .atelier-hero__note { margin-top: 25px; font-size: .75rem; }
  .atelier-art { max-width: 450px; width: 100%; height: clamp(400px,115vw,500px); margin-inline: auto; }
  .atelier-art__photo { right: 10%; width: 70%; height: 86%; }
  .atelier-art__frame { left: 16%; width: 73%; }
  .atelier-art__detail { left: 3%; width: 33%; height: 43%; }
  .atelier-art__seal { right: 2%; top: 39px; }
  .atelier-art__index { right: 0; }
  .atelier-art__caption { right: 8%; bottom: 2px; font-size: 1rem; }
  .atelier-hero__footer { width: calc(100% - 58px); min-height: 68px; font-size: .75rem; letter-spacing: .06em; }
  .atelier-hero__footer > span { max-width: 220px; line-height: 1.7; }
  body.atelier .section-shell { width: calc(100% - 44px); padding-block: 56px; }
  body.atelier .section-heading { margin-bottom: 30px; }
  body.atelier .section-heading h2 { font-size: 2.8rem; }
  body.atelier .quick-facts { width: 100%; padding: 0 26px; }
  body.atelier .quick-facts dl { grid-template-columns: 1fr 1fr; gap: 22px; }
  body.atelier .quick-facts dl > div:nth-child(2) { border-right: 0; }
  body.atelier .quick-facts dd { font-size: .75rem; }
  body.atelier .service-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 30px 18px; }
  body.atelier .service-card__media { margin-bottom: 18px; border-radius: 85px 85px 2px 2px; }
  body.atelier .service-card h3 { font-size: 1.5rem; }
  body.atelier .service-card p { font-size: 1rem; }
  body.atelier .service-card__link { font-size: .875rem; line-height: 1.6; }
  body.atelier .service-card__link::after { margin-left: 7px; }
  body.atelier .showcase { width: 100%; padding: 56px 26px; }
  body.atelier .showcase__inner { grid-template-columns: 1fr; gap: 25px; }
  body.atelier .showcase__visual { width: min(100%,430px); margin: auto; min-height: 410px; }
  body.atelier .hand-card-stack { height: 390px; }
  body.atelier .hand-card { height: 285px; }
  body.atelier .gallery-grid .gallery-card { flex-basis: 78%; }
  body.atelier .gallery-card__media { height: 360px; }
  body.atelier .gallery-control { top: -3px; z-index: 4; background: #fff5dff2; }
  body.atelier .gallery-control--prev { right: 54px; }
  body.atelier .gallery-control--next { right: 4px; }
  body.atelier :is(.trust-grid,.reason-grid,.process-rail) { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; }
  body.atelier .booking__inner { padding: 55px 23px; }
  body.atelier .booking__inner h2 { font-size: 2.7rem; }
  body.atelier .booking-form-panel { grid-template-columns: 1fr; padding: 28px 20px; gap: 30px; }
  body.atelier .booking-form-copy h3 { font-size: 2.5rem; }
  body.atelier .form-grid { grid-template-columns: 1fr; }
  body.atelier :is(.location__grid,.business-summary__grid,.answer-grid) { grid-template-columns: 1fr; }
  body.atelier .connect-review__inner { padding: 28px 19px; }
  body.atelier .seo-local__inner { padding: 30px 23px; }
  body.atelier .site-footer { padding: 45px 24px 110px; }
  body.atelier .site-footer p { font-size: 2.3rem; }
  body.atelier .hero { grid-template-columns: 1fr; padding: 45px 26px; gap: 35px; }
  body.atelier .hero h1 { font-size: 3.4rem; }
  body.atelier .hero__visual { min-height: 430px; }
  body.atelier .hero-photo-card { height: 430px; max-width: 340px; }
}
@media (max-width: 380px) {
  body.atelier .service-grid { grid-template-columns: 1fr; }
  .atelier-hero__actions { gap: 12px; }
  body.atelier .atelier-hero .btn { padding-inline: 17px; }
  .atelier-link { font-size: .75rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  body.atelier *, body.atelier *::before, body.atelier *::after { animation: none !important; transition-duration: .01ms !important; }
  .atelier-art__scene { transform: none !important; }
}

/* Bright celebration colours and pointer-responsive light. */
body.atelier .atelier-hero { color: #6e314a; background: radial-gradient(ellipse at 80% 20%, #ffe06b 0, transparent 55%), radial-gradient(ellipse at 5% 90%, #ffc7df 0, transparent 55%), #fff2d6; }
body.atelier .atelier-hero::before { border-color: #ec9e9250; background: radial-gradient(circle 280px at var(--light-x, 65%) var(--light-y, 40%), #ffffffa6, transparent 75%); }
body.atelier .atelier-hero h1 { color: #b71460; }
body.atelier .atelier-hero h1 em { color: #c34409; }
body.atelier .site-nav .nav-cta { background: #ffdc50; color: #811448; border-color: #f3bf2f; }
body.atelier .site-nav .nav-cta:hover { color: #fff; background: #c01b68; }
body.atelier .brand__mark { color: #fff; background: #d81b71; border-color: #d81b71; }
body.atelier .atelier-art__photo { box-shadow: 18px 24px 55px #ac285735, inset 0 0 0 3px #ffe993; }
body.atelier .atelier-art__frame { border: 2px solid #eb4f9699; }
body.atelier .atelier-art__detail { box-shadow: 8px 18px 40px #a2295e33; }
body.atelier .atelier-art__seal { outline-color: #df46936b; }
body.atelier .atelier-hero__footer { border-color: #d8899955; }
body.atelier .gallery-card:nth-child(3n + 1) { background: #ffe0ec; }
body.atelier .gallery-card:nth-child(3n + 2) { background: #fff0b8; }
body.atelier .gallery-card:nth-child(3n) { background: #d9f5ed; }
body.atelier .service-card { --shine-x: 50%; --shine-y: 50%; }
body.atelier .service-card__media { border: 3px solid #ffc95a; }
body.atelier .service-card:nth-child(3n + 2) .service-card__media { border-color: #ef80b1; }
body.atelier .service-card:nth-child(3n) .service-card__media { border-color: #53c9b2; }
body.atelier .service-card__media::after { display: block; content: ''; position: absolute; inset: 0; background: radial-gradient(circle 160px at var(--shine-x) var(--shine-y), #fff9, transparent 75%); opacity: 0; pointer-events: none; transition: opacity .25s; }
body.atelier .service-card:hover .service-card__media::after { opacity: .55; }
body.atelier .showcase { background: linear-gradient(120deg, #ffd447, #ffae57 65%, #ff9474); }
body.atelier .showcase h2 { color: #7a273f; }
body.atelier .showcase p { color: #793246; }
body.atelier .showcase .section-kicker { color: #85350b; }
body.atelier .booking__inner { background: radial-gradient(circle at var(--shine-x, 70%) var(--shine-y, 30%), #df2b87, transparent 65%), linear-gradient(120deg, #b91565, #981c83); }
body.atelier .hero { background: radial-gradient(ellipse at 85% 10%, #ffe279, transparent 70%), #fff0dc; }
body.atelier .hero .btn--outline, body.atelier .hero .btn--ghost { color: #a81c62; }
body.atelier .hero-photo-card figcaption { color: #fff8e9; }
body.atelier .hero-photo-card figcaption span, body.atelier .hero-photo-card figcaption strong { color: #fff8e9; }
body.atelier .btn, body.atelier .nav-cta, body.atelier .gallery-control { transition: translate .18s ease-out, transform .25s, background .25s, color .25s, box-shadow .25s; }
body.atelier .gallery-grid .gallery-card, body.atelier .qr-card, body.atelier .service-inline-gallery figure { transition: transform .28s ease-out; }
body.atelier .service-card { transition: transform .28s ease-out; }
.atelier-cursor { position: fixed; top: 0; left: 0; width: 0; height: 0; z-index: 150; pointer-events: none; opacity: 0; transition: opacity .2s; }
.atelier-cursor.is-visible { opacity: 1; }
.atelier-cursor::before { content: ''; position: absolute; width: 36px; height: 36px; left: -18px; top: -18px; border: 1px solid #dd2876b3; border-radius: 50%; box-shadow: 0 0 22px #fa72a65c; background: #ffd24916; transition: scale .2s, background .2s, border-color .2s; }
.atelier-cursor.is-over-link::before { scale: 1.55; border-color: #bd195b; background: #ffd43a25; }
.atelier-cursor.is-pressed::before { scale: .7; }
.atelier-cursor.is-editing { opacity: 0; }
@media (pointer: coarse), (prefers-reduced-motion: reduce) {
  .atelier-cursor { display: none; }
  body.atelier .btn, body.atelier .nav-cta, body.atelier .gallery-control { translate: none !important; }
}
