/** Shopify CDN: Minification failed

Line 366:0 Unexpected "{"
Line 366:1 Expected identifier but found "%"
Line 367:24 Expected identifier but found whitespace
Line 367:93 Unterminated string token
Line 370:90 Unterminated string token
Line 371:87 Unterminated string token
Line 372:1 Expected identifier but found "%"
Line 373:0 Unexpected "<"
Line 376:7 Expected identifier but found "%"
Line 377:6 Unexpected "{"
... and 81 more hidden warnings

**/
/*
 Brand font: Garabosse Parangon (assets/Garabosse-Parangon.otf), included unmodified.

Copyright (c) 10/09/2025, Noémie Doussaud (noemie.doussaud@eesab.fr)
Copyright (c) 10/09/2025, Garance Hebrard (garance.hebrard@eesab.fr)
Copyright (c) 10/09/2025, Alice Laurichesse (alice.laurichesse@eesab.fr)
with Reserved Font Name <Garabosse Parangon>,

Copyright (c) 10/09/2025, Titouan Collet (titouan.collet@eesab.fr)
Copyright (c) 10/09/2025, Clara Coutanceau (clara.coutanceau@eesab.fr)
Copyright (c) 10/09/2025, Paul Fleury (paul.fleury@eesab.fr)
with Reserved Font Name <Garabosse Gaillard·e>,

Copyright (c) 10/09/2025, Justine Grandpierre (justine.grandpierre@eesab.fr)
Copyright (c) 10/09/2025, Zoé Raude (zoe.raude@eesab.fr)
Copyright (c) 10/09/2025, Pome Saint-Bonnet (pome.saint-bonnet@eesab.fr)
with Reserved Font Name <Garabosse Mignon·ne>,

Copyright (c) 10/09/2025, Margaux Clerc (margaux.clerc@eesab.fr)
Copyright (c) 10/09/2025, Lolita Moreau (lolita.moreau@eesab.fr)
with Reserved Font Name <Garabosse Nonpareil·le>,

Copyright (c) 10/09/2025, Lucie Bouchet (lucie.bouchet@eesab.fr)
Copyright (c) 10/09/2025, Pauline Mousain (pauline.mousain@eesab.fr)
with Reserved Font Name <Garabosse Perle>,



This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL


-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------

PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.

The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded, 
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.

DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.

"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).

"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).

"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.

"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.

PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:

1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.

2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.

3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.

4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.

5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.

TERMINATION
This license becomes null and void if any of the above conditions are
not met.

DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.
*/
/* Layout: pre-launch. A bright, blurred bridal photograph opens the site with the waitlist set in ink on its empty wall; quiet parchment pages follow, and the Custom Studio page ends in a four-part questionnaire. Single-theme by choice (the brand is a fixed paper palette). */
:root{
  --antique:#FFFDF9; --parchment:#FDF7EA; --plaster:#D7CCBA; --olive:#6A6637; --espresso:#443522; --ink:#262219;
  --ink-soft:#5a5246; --rule:rgba(38,34,25,.22);
  --serif:"Garabosse Parangon","EB Garamond",Garamond,"Times New Roman",serif;  /* brand face */
  --italic:"EB Garamond","Garamond Premier Pro",Garamond,"Times New Roman",serif; /* guide: Garamond Premier italic for accents */
  --script:"Meie Script","Snell Roundhand",cursive;
  /* Type scale from the guidelines: H2 is the base */
  --h2:clamp(18px,1.4vw,21px);       /* H2 primary heading: the BASE size */
  --h1:calc(var(--h2)*1.75);         /* H1 key title: H2 x 1.75 */
  --h3:var(--h2);                    /* H3 subheading: = H2 */
  --h4:calc(var(--h2)*.9);           /* H4 caption: H2 x 0.9 */
  --h5:calc(var(--h2)*.8);           /* H5 italic accent: H2 x 0.8 */
  --p:max(16px,calc(var(--h2)*.8));  /* paragraph: H2 x 0.8 */
  --scriptsize:calc(var(--h2)*1.7);  /* script accent: H2 x 1.7 */
  --gutter:clamp(16px,4vw,56px); --max:1240px;
  --photo:grayscale(1) sepia(.12) contrast(.98); /* one treatment for every photograph */
  color-scheme:light;
}
@font-face{font-family:"Garabosse Parangon";src:url(Garabosse-Parangon.otf) format("opentype");font-weight:400;font-style:normal;font-display:swap}
/* Parangon has no italic: italic accents use Garamond, as the guide specifies (H5 = Garamond Premier Medium Italic) */
em,i,.h5,.hint,.thanks,.status,.upload-note,.pron,.step .n,.values .v .n,.q-progress li em{font-family:var(--italic)}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{background:var(--parchment);color:var(--ink);font-family:var(--serif);font-size:var(--p);line-height:1.35;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:1px solid currentColor;outline-offset:3px}
img{display:block;max-width:100%}
.photo{filter:var(--photo)}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* type roles */
.h1{font-size:var(--h1);font-weight:400;line-height:1.2;letter-spacing:0;margin:0;text-wrap:balance}  /* Title Case, no tracking */
.h2{font-size:var(--h2);font-weight:400;text-transform:uppercase;letter-spacing:.1em;line-height:1.2;margin:0;text-wrap:balance} /* All caps, tracking 100 */
.h3{font-size:var(--h3);font-weight:400;letter-spacing:.02em;line-height:1.2;margin:0}  /* Title Case, tracking 20 */
.h4{font-size:var(--h4);text-transform:uppercase;letter-spacing:.1em;line-height:1.2;margin:0;font-weight:400}
.h5{font-size:var(--h5);font-style:italic;font-weight:500;letter-spacing:0;line-height:1.2;margin:0}  /* Medium italic, Title Case */
.script{font-family:var(--script);font-size:var(--scriptsize);line-height:1.1;font-weight:400;letter-spacing:0;margin:0}
.q-o{display:inline-block;margin-right:-.42em;margin-left:-.2em}
.q-c{display:inline-block;margin-left:-.1em}
p{margin:0;max-width:62ch;text-wrap:pretty}
.muted{color:var(--ink-soft)}

/* brand marks drawn as masks so they take any palette color */
.mark{display:block;background:currentColor;-webkit-mask:var(--src) center/contain no-repeat;mask:var(--src) center/contain no-repeat}
.m-word{--src:url(wordmark.png);aspect-ratio:936/304}
.m-motif{--src:url(motif.png);aspect-ratio:1}
.m-mono{--src:url(monogram.png);aspect-ratio:1}
.m-over{--src:url(overlayed.png);aspect-ratio:960/838}
.m-border{--src:url(border.png);aspect-ratio:3040/587}
.m-stack{--src:url(stacked.png);aspect-ratio:864/1088}

.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
.sec{padding-block:clamp(64px,9vw,128px)}
.center{text-align:center;display:grid;justify-items:center}
.stack{display:grid;gap:14px}
.titleblock{display:grid;gap:8px;justify-items:center;text-align:center}
.border{color:var(--ink);width:min(760px,100%);margin-inline:auto}
.border.sm{width:min(420px,80%)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 28px;border:1px solid var(--ink);background:transparent;cursor:pointer;font-size:var(--h3);letter-spacing:.02em;transition:background .25s,color .25s;white-space:nowrap}
.btn:hover{background:var(--ink);color:var(--parchment)}
.btn.solid{background:var(--ink);color:var(--parchment)}
.btn.solid:hover{background:var(--espresso);border-color:var(--espresso)}
.btn.light{border-color:var(--antique);color:var(--antique)}
.btn.light:hover{background:var(--antique);color:var(--ink)}
.btn.fill-light{background:var(--antique);border-color:var(--antique);color:var(--ink)}
.btn.fill-light:hover{background:var(--plaster);border-color:var(--plaster)}
.link{font-size:var(--h3);letter-spacing:.02em;border-bottom:1px solid currentColor;padding-bottom:3px}

/* header: floats over the bright hero on the home page, solid elsewhere */
.announce{background:var(--olive);color:var(--antique);text-align:center;font-size:calc(var(--h4)*.85);text-transform:uppercase;letter-spacing:.1em;line-height:1.2;padding:10px 16px}
.announce a{border-bottom:1px solid rgba(255,253,249,.5)}
header.site{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--parchment);border-bottom:1px solid var(--rule);color:var(--ink)}
body.on-home header.site{position:absolute;left:0;right:0;top:auto;background:rgba(253,247,234,.86);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.hdr{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding-block:18px}
.hdr nav{display:flex;gap:clamp(14px,2vw,30px)}
.hdr a.nl,.menu-btn{font-size:calc(var(--h4)*.85);text-transform:uppercase;letter-spacing:.1em;background:none;border:0;padding:4px 0;cursor:pointer}
.hdr a.nl[aria-current="page"]{border-bottom:1px solid currentColor}
.brand{width:clamp(108px,10vw,138px)}
.util{display:flex;justify-content:flex-end;gap:22px}
.menu-btn{display:none}
.mobile-nav{display:none}
@media (max-width:760px){
  .hdr{grid-template-columns:auto 1fr auto}
  .hdr nav,.util .nl{display:none}
  .menu-btn{display:block}
  .brand{justify-self:center}
  .mobile-nav.open{display:grid;gap:4px;padding:8px var(--gutter) 22px;border-top:1px solid var(--rule);background:var(--parchment)}
  .mobile-nav a{font-size:var(--h2);text-transform:uppercase;letter-spacing:.1em;padding:10px 0;border-bottom:1px solid var(--rule)}
}

/* pages */

/* HERO — the photograph's empty wall carries the type */
.hero{position:relative;min-height:max(600px,calc(100svh - 40px));display:grid;align-items:center;background:#f4f4f2;overflow:hidden}
.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:78% 30%}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(253,247,234,.55) 0%,rgba(253,247,234,.25) 40%,rgba(253,247,234,0) 60%);pointer-events:none}
.hero-inner{position:relative;z-index:1;width:100%;padding-block:120px 72px}
.hero-copy{display:grid;gap:20px;max-width:520px}
.signup{display:flex;width:100%;max-width:480px}
.signup input{flex:1;min-width:0;background:var(--antique);border:1px solid var(--ink);border-right:0;padding:14px 16px;color:var(--ink)}
.signup input::placeholder{color:var(--ink-soft)}
.signup.on-dark input{background:rgba(255,253,249,.08);border-color:rgba(255,253,249,.7);color:var(--antique)}
.signup.on-dark input::placeholder{color:rgba(255,253,249,.75)}
.thanks{font-style:italic}
@media (max-width:760px){
  body.on-home header.site{position:sticky;top:env(safe-area-inset-top,0px);background:var(--parchment)}
  .hero{display:block;min-height:0;background:var(--parchment)}
  .hero>img{position:relative;height:auto;aspect-ratio:4/5;object-position:84% 30%}
  .hero::after{display:none}
  .hero-inner{padding-block:36px 56px}
}
@media (max-width:480px){.signup{flex-direction:column;gap:8px}.signup input{border-right:1px solid var(--ink)}.signup.on-dark input{border-right-color:rgba(255,253,249,.7)}}

/* two offerings */
.duo{display:grid;grid-template-columns:1fr 1fr;border-block:1px solid var(--rule)}
.duo>div{padding:clamp(40px,6vw,88px) clamp(20px,5vw,72px);display:grid;gap:16px;align-content:start;justify-items:center;text-align:center}
.duo>div+div{border-left:1px solid var(--rule)}
.status{display:inline-flex;align-items:center;gap:8px;font-size:var(--h5);font-style:italic;font-weight:500;padding:6px 14px;border:1px solid var(--rule)}
.status i{width:7px;height:7px;border-radius:50%;background:var(--olive);display:block}
.status.soon i{background:transparent;border:1px solid var(--ink-soft)}
@media (max-width:760px){.duo{grid-template-columns:1fr}.duo>div+div{border-left:0;border-top:1px solid var(--rule)}}

/* quote */
.quote{background:var(--olive);color:var(--antique)}
.quote .script{max-width:36ch;text-align:center}
.quote .m-motif{width:clamp(88px,9vw,120px);color:var(--antique);opacity:.85}

.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:center}
@media (max-width:860px){.split{grid-template-columns:1fr}}

/* CUSTOM STUDIO */
.k-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:min(80vh,780px)}
.k-hero img{width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.k-hero .copy{display:grid;align-content:center;gap:18px;padding:clamp(48px,6vw,96px) var(--gutter)}
@media (max-width:860px){.k-hero{grid-template-columns:1fr;min-height:0}.k-hero img{aspect-ratio:1}}
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(18px,3vw,40px);margin-top:44px}
.step{display:grid;gap:8px;align-content:start;border-top:1px solid var(--ink);padding-top:14px}
.step .n{font-style:italic;color:var(--ink-soft)}
@media (max-width:860px){.steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.steps{grid-template-columns:1fr}}

/* questionnaire */
.qwrap{background:var(--antique);border-top:1px solid var(--rule)}
.q{max-width:820px;margin-inline:auto}
.q-progress{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:40px 0 8px;list-style:none;padding:0}
.q-progress li{border-top:2px solid var(--rule);padding-top:10px;font-size:calc(var(--h4)*.85);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}
.q-progress li[data-state="done"]{border-color:var(--ink-soft)}
.q-progress li[data-state="now"]{border-color:var(--ink);color:var(--ink)}
.q-progress li em{display:block;font-style:italic;font-weight:500;text-transform:none;letter-spacing:0;font-size:var(--h5)}
@media (max-width:560px){.q-progress li{font-size:0}.q-progress li em{font-size:var(--h5)}}
fieldset{border:0;padding:0;margin:28px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:20px 16px}
legend{grid-column:1/-1;padding:0;margin-bottom:6px;display:grid;gap:6px}
.full{grid-column:1/-1}
.field{display:grid;gap:7px;align-content:start}
.field>label,.field>.lbl{font-size:calc(var(--h4)*.85);letter-spacing:.1em;text-transform:uppercase}
.field .hint{font-style:italic;font-weight:500;color:var(--ink-soft);font-size:var(--h5);text-transform:none;letter-spacing:0}
.field input,.field select,.field textarea{background:var(--parchment);border:1px solid var(--rule);padding:12px 14px;font-size:var(--p);width:100%}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--ink);outline:none}
.field textarea{min-height:120px;resize:vertical}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips label{position:relative}
.chips input{position:absolute;opacity:0;width:1px;height:1px}
.chips span{display:inline-block;border:1px solid var(--rule);padding:9px 15px;cursor:pointer;font-size:var(--p);background:var(--parchment);transition:background .2s,color .2s,border-color .2s}
.chips input:checked+span{background:var(--ink);color:var(--parchment);border-color:var(--ink)}
.chips input:focus-visible+span{outline:1px solid var(--ink);outline-offset:2px}
.check{display:flex;gap:10px;align-items:center;font-size:var(--p)}
.other-input{margin-top:10px}
.chips .chip-other input{position:static;opacity:1;width:min(240px,100%);height:auto;border:1px dashed rgba(38,34,25,.35);background:var(--parchment);padding:9px 15px;font-size:var(--p);font-family:inherit}
.chips .chip-other input::placeholder{color:var(--ink-soft)}
.chips .chip-other input:focus{outline:none;border:1px solid var(--ink);background:var(--antique)}
.chips .chip-other input:not(:placeholder-shown){border:1px solid var(--ink)}
.field>.upload{text-transform:none;letter-spacing:0;color:var(--ink)}
.upload{display:grid;justify-items:center;gap:4px;text-align:center;padding:26px 16px;border:1px dashed rgba(38,34,25,.35);background:var(--parchment);cursor:pointer;transition:border-color .2s,background .2s}
.upload:hover,.upload:focus-within{border-color:var(--ink);background:var(--antique)}
.upload input{position:absolute;width:1px;height:1px;opacity:0}
.upload-cta{font-size:var(--h3);letter-spacing:.02em;border-bottom:1px solid currentColor;padding-bottom:2px}
.upload-note{font-size:var(--h5);font-style:italic;font-weight:500;color:var(--ink-soft)}
.thumbs{display:flex;flex-wrap:wrap;gap:8px}
.thumbs figure{position:relative;margin:0;width:76px;height:76px}
.thumbs img{width:100%;height:100%;object-fit:cover}
.thumbs button{position:absolute;top:2px;right:2px;width:22px;height:22px;border:0;border-radius:50%;background:rgba(38,34,25,.75);color:var(--antique);cursor:pointer;font-size:14px;line-height:1}
.q-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:36px;padding-top:24px;border-top:1px solid var(--rule)}
.q-err{color:#8a2f1d;font-style:italic;min-height:1.5em}
.q-done{text-align:center;display:grid;gap:14px;justify-items:center;padding-block:48px}
.q-done .m-mono{width:64px}
@media (max-width:600px){fieldset{grid-template-columns:1fr}}

/* join */
.join{display:grid;grid-template-columns:minmax(0,1fr);background:var(--olive);color:var(--antique);min-height:70vh}
.join img{width:100%;height:100%;object-fit:cover}
.join .copy{display:grid;align-content:center;justify-items:center;text-align:center;gap:18px;padding:clamp(48px,7vw,110px) var(--gutter)}
@media (max-width:760px){.join{grid-template-columns:1fr}.join img{aspect-ratio:4/5;height:auto}}

/* atelier */
.define{display:grid;gap:10px;justify-items:center;text-align:center}
.define .pron{font-style:italic;color:var(--ink-soft)}
.values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,4vw,56px);margin-top:48px}
.values .v{display:grid;gap:12px;align-content:start}
.values .v .n{font-style:italic;color:var(--ink-soft)}
@media (max-width:820px){.values{grid-template-columns:1fr}}

/* footer */
footer.site{background:var(--espresso);color:var(--parchment);padding-block:64px 32px}
.ft{display:grid;grid-template-columns:auto 1fr auto;gap:40px;align-items:start}
.ft .m-stack{width:104px;color:var(--parchment)}
.ft ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ft-cols{display:flex;gap:clamp(32px,4vw,64px)}
.ft .h4{color:var(--plaster);margin-bottom:12px}
.ft a:hover{text-decoration:underline;text-underline-offset:3px}
footer .base{margin-top:48px;padding-top:20px;border-top:1px solid rgba(253,247,234,.2);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:var(--p);color:var(--plaster)}
@media (max-width:760px){.ft{grid-template-columns:1fr}}


/* ---- theme additions ---- */
.skip-link{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--ink);color:var(--antique);padding:10px 14px}
.skip-link:focus{left:8px}
.signup-form{width:100%;max-width:480px}
.form-error{color:#8a2f1d;font-style:italic;margin-top:8px}
.rte p+p{margin-top:1em}
.rte a{border-bottom:1px solid currentColor}
.stack.rte p+p{margin-top:0}
.pw .hero-copy{gap:18px}
.pw-enter summary{cursor:pointer;list-style:none}
.pw-enter summary::-webkit-details-marker{display:none}
.mark.m-stack{display:block}

{%- comment -%}
  Bespoke questionnaire. Uses Shopify's contact form: every answer arrives as an email to the
  store's sender address. Shopify's contact form cannot accept file uploads.
  To use a form app instead (for example Powerful Form Builder, which supports image uploads),
  add the app's form as a block to this section in the theme editor. While an app block is
  present, the built-in form is hidden and the app's form shows under the same heading.
{%- endcomment -%}
<section class="sec qwrap" id="questionnaire">
  <div class="wrap">
    <div class="q">
      {%- assign app_blocks = section.blocks | where: 'type', '@app' -%}
      {%- if app_blocks.size > 0 -%}
        <div class="titleblock">
          <span class="h4 muted">{{ section.settings.eyebrow | escape }}</span>
          <h2 class="h2">{{ section.settings.heading | escape }}</h2>
          <p class="muted">{{ section.settings.intro | escape }}</p>
        </div>
        <div class="q-app">
          {%- for block in app_blocks -%}{% render block %}{%- endfor -%}
        </div>
      {%- else -%}
      {%- form 'contact', id: 'bespoke-questionnaire' -%}
        {%- if form.posted_successfully? -%}
          <div class="q-done" role="status">
            <span class="mark m-mono" aria-hidden="true"></span>
            <h2 class="h2">Thank You</h2>
            <p>{{ section.settings.success | escape }}</p>
          </div>
        {%- else -%}
          <div class="titleblock">
            <span class="h4 muted">{{ section.settings.eyebrow | escape }}</span>
            <h2 class="h2">{{ section.settings.heading | escape }}</h2>
            <p class="muted">{{ section.settings.intro | escape }}</p>
          </div>
          {%- if form.errors -%}<p class="form-error" role="alert">{{ form.errors | default_errors }}</p>{%- endif -%}
          <input type="hidden" name="contact[Form]" value="Bespoke questionnaire">
          <fieldset>
            <legend class="vh">Your details</legend>
            <div class="field"><label for="q-name">Your name</label><input id="q-name" name="contact[name]" required autocomplete="name"></div>
            <div class="field"><label for="q-email">Email</label><input id="q-email" name="contact[email]" type="email" required autocomplete="email"></div>
            <div class="field"><label for="q-date">Wedding or event date</label><input id="q-date" name="contact[Wedding or event date]" placeholder="e.g. June 14, 2027 or summer 2027"><span class="hint">A general season is OK too</span></div>
            <div class="field"><label for="q-venue">Wedding location</label><input id="q-venue" name="contact[Wedding location]" placeholder="City or venue"></div>
            <div class="field full"><span class="lbl">What are you looking for? <span class="hint">Choose any</span></span>
              <div class="chips" role="group" aria-label="What are you looking for">
                {%- assign looks = section.settings.looks | split: ',' -%}
                {%- for look in looks -%}
                  {%- assign l = look | strip -%}
                  <label><input type="checkbox" name="contact[Looking for: {{ l | escape }}]" value="Yes"><span>{{ l | escape }}</span></label>
                {%- endfor -%}
                <label class="chip-other"><span class="vh">Other</span><input id="q-other" name="contact[Looking for: Other]" placeholder="Other: type your own"></label>
              </div>
            </div>
            <div class="field full"><label for="q-vision">Tell us about your vision</label><textarea id="q-vision" name="contact[body]" placeholder="A few words, a feeling, anything helps."></textarea></div>
            <div class="field full"><label for="q-board">Inspiration link <span class="hint">optional</span></label><input id="q-board" name="contact[Inspiration link]" type="url" placeholder="Pinterest board, Instagram saves, shared album"></div>
            <div class="field"><label for="q-budget">Budget</label>
              <select id="q-budget" name="contact[Budget]"><option value="">Choose one</option>
                {%- assign budgets = section.settings.budgets | newline_to_br | split: '<br />' -%}
                {%- for b in budgets -%}{%- assign bb = b | strip -%}{%- if bb != blank -%}<option>{{ bb | escape }}</option>{%- endif -%}{%- endfor -%}
              </select></div>
            <div class="field"><label for="q-heard">How did you find us?</label>
              <select id="q-heard" name="contact[How they found us]"><option value="">Choose one</option><option>Instagram</option><option>TikTok</option><option>Pinterest</option><option>A friend</option><option>A planner or vendor</option><option>Somewhere else</option></select></div>
            <label class="check full"><input type="checkbox" name="contact[Add to Collection I list]" value="Yes" checked> Also add me to the list for Collection I</label>
          </fieldset>
          <div class="q-nav"><span class="q-err" id="qErr" role="alert"></span><button class="btn solid" type="submit">Send</button></div>
        {%- endif -%}
      {%- endform -%}
      {%- endif -%}
    </div>
  </div>
</section>
{% schema %}
{
  "name": "Questionnaire",
  "settings": [
    { "type": "text", "id": "eyebrow", "label": "Small label", "default": "Start Here" },
    { "type": "text", "id": "heading", "label": "Heading", "default": "Tell Us About You" },
    { "type": "textarea", "id": "intro", "label": "Intro", "default": "A few quick questions so we can get a feel for what you're dreaming of. We'll be in touch to schedule your consultation." },
    { "type": "text", "id": "looks", "label": "'Looking for' options (comma separated)", "default": "Getting ready, Ceremony gown, Second look, Rehearsal dinner, Elopement, Not sure yet", "info": "A type-in 'Other' box is always added at the end." },
    { "type": "textarea", "id": "budgets", "label": "Budget options (one per line)", "default": "Under $1,000\n$1,000 – $2,000\n$2,000 – $3,000\n$3,000 – $5,000\n$5,000 – $8,000\n$8,000 +\nI'd rather discuss" },
    { "type": "textarea", "id": "success", "label": "Thank-you message", "default": "We've got your answers and we're already a little excited. We'll be in touch within a few days to schedule your consultation." }
  ],
  "blocks": [{ "type": "@app" }],
  "presets": [{ "name": "Questionnaire" }]
}
{% endschema %}


/* ---- mobile polish (Oct 2026) ---- */
html,body{margin:0}                                   /* remove the browser's default 8px page border */
@media (max-width:760px){
  .announce{font-size:12px;letter-spacing:.08em;line-height:1.35;padding:8px 14px}
  .hdr{padding-block:12px}
  .brand{width:104px}
  /* photos: shorter, so the words start on the first screen */
  .hero>img{aspect-ratio:auto;height:52svh;object-position:78% 25%}
  .hero-inner{padding-block:28px 44px}
  .hero-copy{gap:14px}
  .k-hero img{aspect-ratio:auto;height:44svh}
  .k-hero .copy{padding-block:30px 44px;gap:14px}
  .split>img,.split>.photo{aspect-ratio:auto!important;height:50svh!important}
  /* tighter spacing between sections */
  .sec{padding-block:52px}
  .duo>div{padding:44px 20px;gap:12px}
  .split{gap:26px}
  .steps{gap:26px;margin-top:32px}
  .values{gap:28px;margin-top:32px}
  .quote .m-motif{width:72px}
  footer.site{padding-block:44px 24px}
  .ft{gap:26px}
  .ft .m-stack{width:84px}
}


/* ---- mobile type + spacing, round 2 ---- */
@media (max-width:760px){
  :root{
    --h2:16px;                       /* base heading (guide ratios kept below) */
    --h1:calc(var(--h2)*1.75);       /* 28px key titles */
    --h3:var(--h2);
    --h4:calc(var(--h2)*.9);         /* 14.4px captions */
    --h5:calc(var(--h2)*.8);
    --p:15px;
    --scriptsize:calc(var(--h2)*1.7);
  }
  body{line-height:1.45}
  .announce{font-size:10.5px;padding:7px 12px}
  .hdr a.nl,.menu-btn{font-size:12px}
  .hero>img{height:44svh}
  .hero-inner{padding-block:22px 36px}
  .k-hero img{height:38svh}
  .split>img,.split>.photo{height:42svh!important}
  .sec{padding-block:44px}
  .duo>div{padding:34px 20px}
  .quote{padding-block:56px}
  .steps,.values{gap:22px}
  .btn{padding:12px 22px}
  fieldset{gap:16px 12px}
}

/* ---- one fewer signup: remove the footer signup box (footer keeps its Join the List link) ---- */
.ft > .stack{display:none}
.ft{grid-template-columns:auto 1fr}
.ft-cols{justify-self:end}
@media (max-width:760px){.ft{grid-template-columns:1fr}.ft-cols{justify-self:start}}

/* ---- mobile round 3: smaller type, centered logo ---- */
@media (max-width:760px){
  :root{
    --h2:14px;                       /* base heading */
    --h1:calc(var(--h2)*1.75);       /* 24.5px key titles */
    --h3:var(--h2);
    --h4:calc(var(--h2)*.9);         /* 12.6px captions */
    --h5:max(12px,calc(var(--h2)*.8));
    --p:14px;
    --scriptsize:calc(var(--h2)*1.7);
  }
  /* logo exactly centered: equal side columns around it */
  .hdr{grid-template-columns:1fr auto 1fr}
  .menu-btn{justify-self:start}
  .brand{width:96px}
  /* form fields stay 16px so iPhones don't zoom in when tapped */
  .signup input,.field input,.field select,.field textarea{font-size:16px}
  .chips span{font-size:14px;padding:7px 12px}
  .mobile-nav a{font-size:14px}
}

/* ---- desktop type: about 20% smaller, guide ratios kept ---- */
@media (min-width:761px){
  :root{
    --h2:clamp(15px,1.15vw,17.5px);  /* base heading: ~16.5px on a laptop */
    --h1:calc(var(--h2)*1.75);       /* ~29px key titles */
    --h3:var(--h2);
    --h4:calc(var(--h2)*.9);
    --h5:calc(var(--h2)*.8);
    --p:15px;
    --scriptsize:calc(var(--h2)*1.7);
  }
  .announce{font-size:12px}
  .hdr a.nl{font-size:12.5px}
  .brand{width:118px}
}
/* buttons and text links at body size (they were as large as section headings) */
.btn,.link{font-size:var(--p)}
.upload-cta{font-size:var(--p)}
