:root{--ink:#302b2b;--muted:#6f6764;--cream:#f9f6f1;--card:#fffefa;--pink:#e9bcb9;--coral:#aa6259;--sage:#687a6f;--line:#e9e1d9;--max:1130px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:92px}
body{margin:0;background:var(--cream);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.65;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%;height:auto}
button,input,textarea{font:inherit}
:focus-visible{outline:3px solid var(--sage);outline-offset:4px}
.container{width:min(var(--max),calc(100% - 56px));margin-inline:auto}
.skip-link{position:absolute;top:-100px;left:12px;z-index:200;background:#fff;padding:10px 16px}
.skip-link:focus{top:12px}
.site-header{position:relative;z-index:2;border-bottom:1px solid rgba(63,56,50,.09);background:rgba(249,246,241,.96)}
.nav-bar{display:flex;justify-content:space-between;align-items:center;min-height:88px;gap:24px}
.brand{display:inline-flex;align-items:center;white-space:nowrap}
.brand-logo-image{display:block;width:clamp(170px,22vw,290px);height:auto}
.navigation{display:flex;gap:35px;font-size:13px;font-weight:bold;letter-spacing:.025em}
.navigation a:hover,.text-link:hover,.back-top:hover{color:var(--coral)}
.hero{overflow:hidden;padding:76px 0 94px;background:radial-gradient(ellipse at 10% 16%,#fff9f4 0,transparent 40%),var(--cream)}
.hero-grid{display:grid;grid-template-columns:1.06fr .94fr;align-items:center;gap:70px}
.hero-copy{max-width:560px;padding:12px 0}
.eyebrow{text-transform:uppercase;font-size:11px;font-weight:700;letter-spacing:.2em;color:var(--coral);margin:0 0 22px}
.eyebrow-line{display:inline-block;width:28px;height:1px;background:currentColor;vertical-align:middle;margin-right:11px}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{font-family:Georgia,'Times New Roman',serif;line-height:1.13;font-weight:normal}
h1{font-size:clamp(52px,5.3vw,82px);letter-spacing:-.06em;margin:0 0 27px;max-width:570px}
h1 em{font-weight:normal;color:var(--coral)}
.hero-description{max-width:440px;font-size:17px;color:var(--muted);line-height:1.9;margin:0 0 35px}
.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:28px}
.button{border:0;display:inline-flex;align-items:center;justify-content:center;gap:25px;padding:15px 25px;font-weight:700;font-size:13px;letter-spacing:.02em;cursor:pointer;transition:transform .2s,background .2s}
.button:hover{transform:translateY(-2px)}
.button-primary{background:var(--ink);color:#fff;border-radius:3px}
.button-primary:hover{background:#564b46}
.text-link{font-size:13px;font-weight:bold;border-bottom:1px solid #b6a39a;padding-bottom:4px;display:inline-flex;gap:17px;align-items:center}
.small-note{font:italic 13px Georgia,serif;color:#8f8780;margin:58px 0 0}
.hero-image-wrap{position:relative;margin-right:26px}
.hero-image{width:100%;aspect-ratio:10/11.6;object-fit:cover;border-radius:230px 230px 7px 7px;box-shadow:26px 26px 0 #ead9d2}
.image-stamp{position:absolute;left:-31px;bottom:49px;width:92px;height:92px;border-radius:50%;background:#f3e3d8;color:#805951;display:flex;align-items:center;justify-content:center;gap:8px;border:6px solid var(--cream);font:26px Georgia,serif;transform:rotate(-12deg)}
.image-stamp span{font-size:13px}
.section{padding:105px 0}
.gallery-section{background:#fffefa}
.section-heading{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:42px}
.section-heading h2,.about-copy h2,.contact-copy h2{font-size:clamp(39px,4vw,58px);letter-spacing:-.04em;margin-bottom:0}
.section-heading .eyebrow{margin-bottom:13px}
.section-intro{max-width:270px;color:var(--muted);font-size:14px;margin:0 0 3px}
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:23px}
.gallery-item{margin:0}
.gallery-item img{width:100%;aspect-ratio:8/9.8;object-fit:cover;border-radius:4px;background:#f5ebe7;transition:transform .25s}
.gallery-item:hover img{transform:translateY(-4px)}
.gallery-item figcaption{text-transform:uppercase;color:#857974;font-size:10px;font-weight:bold;letter-spacing:.14em;margin-top:18px}
.about-section{background:#f5f0e9}
.about-grid{display:grid;grid-template-columns:.8fr 1.2fr;align-items:center;gap:100px}
.about-decoration{height:320px;position:relative;display:flex;justify-content:center;align-items:center;border:1px solid #e1d4c9;background:radial-gradient(circle at 50% 50%,#fff7ee 0,#f3e5dc 69%,#e8d5cb 100%);border-radius:180px 180px 8px 8px;max-width:365px;width:100%;margin-inline:auto}
.about-sparkle{position:absolute;top:32px;right:42px;color:var(--coral);font-size:30px}
.about-monogram{font:italic 156px Georgia,serif;color:rgba(165,105,95,.42);line-height:1}
.about-decoration-label{position:absolute;bottom:20px;text-transform:uppercase;font-weight:bold;letter-spacing:.22em;font-size:11px;color:#977369}
.about-copy h2{margin-bottom:27px}
.about-lead{font:22px/1.45 Georgia,serif;margin-bottom:16px}
.about-placeholder{color:var(--muted);line-height:1.9;margin:0 0 25px;max-width:540px}
.contact-section{background:#f9f6f1}
.contact-grid{display:grid;grid-template-columns:.88fr 1.12fr;gap:98px;align-items:start}
.contact-copy{padding-top:36px}
.contact-copy h2{margin-bottom:25px}
.contact-copy>p:not(.eyebrow){color:var(--muted);font-size:16px;line-height:1.9;max-width:340px}
.social-block{margin-top:70px;padding-top:24px;border-top:1px solid var(--line);max-width:340px}
.social-label{color:var(--ink);text-transform:uppercase;letter-spacing:.13em;font-size:11px;font-weight:bold;margin-bottom:12px}
.social-pending{color:#857c76;font-size:13px;font-style:italic}
.social-block a{display:inline-block;margin-right:22px;text-decoration:underline;text-underline-offset:5px;font-size:14px;font-weight:bold}
.form-card{background:#fff;border:1px solid #eee6df;box-shadow:0 18px 60px rgba(64,45,30,.045);padding:44px 46px;border-radius:5px}
.form-card h3{font-size:32px;letter-spacing:-.025em;margin-bottom:7px}
.form-intro{color:var(--muted);font-size:13px;margin-bottom:27px}
.form-field{margin-bottom:20px}
.form-field label{display:block;font-size:12px;font-weight:bold;letter-spacing:.025em;margin-bottom:7px}
.form-field label span{color:var(--coral)}
.form-field input,.form-field textarea{display:block;width:100%;border:1px solid #dfd9d2;border-radius:3px;background:#fefdfb;padding:12px 13px;line-height:1.5;color:var(--ink);outline-offset:2px}
.form-field textarea{resize:vertical;min-height:122px}
.form-field input:focus,.form-field textarea:focus{border-color:var(--sage)}
.form-field input::placeholder,.form-field textarea::placeholder{color:#958d86}
.form-button{width:100%;margin-top:5px}
.form-privacy{font-size:11px;color:#837b73;text-align:center;margin:14px 0 0}
.honeypot{display:none}
.site-footer{padding:33px 0;background:#322d2c;color:#f6f2ed}
.footer-row{display:flex;justify-content:space-between;align-items:center;gap:20px}
.footer-brand{font-size:20px}.footer-brand em{color:#e9bcb9}
.footer-row p,.back-top{font-size:11px;color:#c5bab4;margin:0}
.back-top{white-space:nowrap}
@media(max-width:850px){.hero-grid{gap:32px}.hero{padding:60px 0 85px}.hero-copy{padding:0}.hero-description{font-size:15px}.about-grid{gap:45px}.contact-grid{gap:35px}.form-card{padding:33px 28px}.section{padding:80px 0}}
@media(max-width:650px){.container{width:min(100% - 34px,var(--max))}.nav-bar{min-height:75px}.brand-logo-image{width:190px}.navigation{gap:15px;font-size:12px}.navigation a:nth-child(2){display:none}.hero{padding:54px 0 68px}.hero-grid{grid-template-columns:1fr;gap:45px}.hero-copy{text-align:left}.hero-copy h1{font-size:clamp(48px,13vw,70px);max-width:440px}.hero-description{max-width:470px}.hero-image-wrap{width:min(80%,400px);margin:0 auto 0 9%}.hero-image{box-shadow:17px 17px 0 #ead9d2}.image-stamp{width:72px;height:72px;font-size:22px;left:-22px;bottom:28px}.small-note{margin-top:32px}.section{padding:72px 0}.section-heading{display:block;margin-bottom:25px}.section-intro{margin-top:16px}.gallery-grid{grid-template-columns:1fr 1fr;gap:16px}.gallery-item:last-child{grid-column:1/-1;max-width:calc(50% - 8px)}.gallery-item figcaption{font-size:10px;letter-spacing:.08em;margin-top:9px}.about-grid,.contact-grid{grid-template-columns:1fr;gap:40px}.about-decoration{display:none}.contact-copy{padding-top:0}.social-block{margin-top:30px}.form-card{padding:27px 22px}.footer-row{flex-direction:column;align-items:flex-start;gap:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button,.gallery-item img{transition:none}}


/* Responsive refinements: large monitors, tablets, phones and narrow screens. */
html { overflow-x: clip; }
body { min-width: 0; }
img, svg { max-width: 100%; }
.container { width: min(var(--max), calc(100% - clamp(36px, 5vw, 100px))); }
.nav-bar { min-height: 84px; }
.brand-logo-image { width: clamp(185px, 22vw, 290px); height: auto; }
.navigation { align-items: center; }
.navigation a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 6px 0; }
.hero-grid > *, .about-grid > *, .contact-grid > *, .section-heading > * { min-width: 0; }
.hero { padding-block: clamp(54px, 6vw, 100px); }
.hero-grid { gap: clamp(38px, 5vw, 76px); }
.hero-image-wrap { min-width: 0; }
.hero-copy h1 { overflow-wrap: normal; }
.gallery-item img { height: auto; }
.form-card, .form-field input, .form-field textarea { min-width: 0; }
.social-profile-links { display: flex; flex-wrap: wrap; gap: 12px 16px; }
.social-profile-links a {
  display: inline-flex; align-items: center; justify-content: flex-start;
  min-height: 44px; gap: 8px; padding: 7px 0; margin: 0;
  text-decoration: none; font-size: 14px; border: 0;
}
.social-profile-links a:hover { color: var(--coral); }
.social-profile-links svg { display: block; width: 19px; height: 19px; flex: none; color: var(--coral); }
.footer-brand { display: inline; font-family: Georgia,'Times New Roman',serif; font-size: 20px; font-weight: bold; }
.footer-brand em { color: #e9bcb9; }

/* Landscape tablets and smaller laptops: don't squeeze the two-column hero. */
@media (max-width: 930px) {
  .hero-grid { grid-template-columns: 1fr; gap: 52px; }
  .hero-copy { max-width: 730px; }
  .hero-description { max-width: 590px; }
  .hero-image-wrap { width: min(70%, 520px); margin: 0 auto; }
  .about-grid, .contact-grid { grid-template-columns: 1fr; gap: 42px; }
  .contact-copy { padding-top: 0; }
  .contact-copy > p:not(.eyebrow), .social-block { max-width: 720px; }
  .social-block { margin-top: 28px; }
  .form-card { width: min(100%, 720px); }
  .section { padding-block: clamp(66px, 8vw, 88px); }
}
@media (max-width: 700px) {
  .gallery-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .gallery-item:last-child { grid-column: auto; max-width: none; }
  .about-decoration { max-width: 300px; height: 275px; }
  .nav-bar { gap: 12px; }
  .navigation { gap: 18px; }
  .navigation a:nth-child(2) { display: inline-flex; } /* Keep About accessible on mobile. */
}
@media (max-width: 560px) {
  .container { width: calc(100% - 36px); }
  .nav-bar { flex-direction: column; justify-content: center; gap: 0; padding-block: 11px 8px; }
  .brand-logo-image { width: clamp(190px, 58vw, 245px); }
  .navigation { width: 100%; justify-content: center; gap: clamp(22px, 7vw, 35px); font-size: 13px; }
  .navigation a { min-height: 44px; }
  .hero { padding-block: 48px 64px; }
  .hero-grid { gap: 39px; }
  .hero-copy { padding: 0; }
  .hero-copy h1 { font-size: clamp(42px, 11.2vw, 64px); letter-spacing: -.055em; }
  .hero-description { font-size: 15px; line-height: 1.8; }
  .hero-image-wrap { width: min(82%, 390px); margin-inline: auto; }
  .hero-actions { gap: 22px; }
  .small-note { margin-top: 30px; }
  .gallery-grid { grid-template-columns: 1fr; gap: 24px; }
  .gallery-item img { aspect-ratio: 4/4.5; }
  .section { padding-block: 62px; }
  .section-heading h2, .about-copy h2, .contact-copy h2 { font-size: clamp(36px, 9vw, 52px); }
  .about-grid { gap: 26px; }
  .about-decoration { display: none; }
  .form-card { padding: 27px 22px; }
  .footer-row { flex-direction: column; align-items: flex-start; gap: 8px; }
}
@media (max-width: 365px) {
  .container { width: calc(100% - 28px); }
  .hero-copy h1 { font-size: 41px; }
  .hero-actions { gap: 17px; }
  .button { padding-inline: 18px; gap: 12px; }
  .eyebrow { letter-spacing: .13em; }
  .form-card { padding: 23px 17px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .button, .gallery-item img { transition: none; }
}

/* Product gallery updates: keep photographs uncropped, show all items. */
.hero-image { aspect-ratio: 1 / 1.10; object-fit: cover; object-position: center center; }
.gallery-item img { aspect-ratio: 1 / 1; height: auto; object-fit: cover; border-radius: 6px; }
.gallery-item figcaption { font-size: 11px; letter-spacing: .09em; line-height: 1.5; }
/* Shelley does not want a personal photograph: text-only about section. */
.about-grid { display: block; }
.about-copy { width: min(100%, 760px); margin-inline: auto; text-align: center; }
.about-copy h2 { margin-bottom: 23px; }
.about-copy .eyebrow { margin-bottom: 13px; }
.about-copy .about-lead { font-size: clamp(20px,2.3vw,25px); }
.about-description { color: var(--muted); max-width: 620px; margin: 0 auto 29px; font-size: 16px; line-height: 1.9; }
.about-copy .text-link { margin-inline: auto; }
@media(max-width:560px) {
  .hero-image { aspect-ratio: 1 / 1.08; }
  .gallery-item img { aspect-ratio: 1 / 1; }
  .about-description { font-size: 15px; }
}
