:root { --cream:#f8f3ea; --paper:#fffdf9; --wine:#6d2437; --wine-dark:#4e1727; --rose:#b47d7e; --olive:#6e7155; --ink:#302922; --muted:#766b61; --line:#ddd1c1; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:84px; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:"Segoe UI",Arial,sans-serif; overflow-x:hidden; }
body::before { content:''; position:fixed; inset:0; z-index:-1; opacity:.28; pointer-events:none; background-image:linear-gradient(90deg,rgba(91,69,49,.04) 1px,transparent 1px),linear-gradient(rgba(91,69,49,.025) 1px,transparent 1px); background-size:4px 4px; }
a { color:inherit; text-decoration:none; } button { font:inherit; } img { max-width:100%; display:block; }
.container { width:min(1180px,calc(100% - 40px)); margin-inline:auto; }
.skip-link { position:fixed; z-index:100; left:16px; top:-60px; background:var(--paper); padding:12px 18px; border-radius:0 0 10px 10px; }
.skip-link:focus { top:0; }
.site-header { position:absolute; z-index:30; width:100%; border-bottom:1px solid rgba(255,255,255,.25); color:white; }
.header-inner { height:86px; display:flex; align-items:center; justify-content:space-between; gap:28px; }
.brand { display:inline-flex; align-items:center; gap:11px; flex:0 0 auto; }
.brand-mark { width:46px; height:46px; display:grid; place-items:center; border:1px solid currentColor; border-radius:50%; font-family:Georgia,serif; font-size:18px; letter-spacing:-.08em; position:relative; }
.brand-mark::after { content:'✽'; position:absolute; font-size:10px; right:-3px; bottom:0; color:#d5b6aa; background:var(--wine); border-radius:50%; width:16px; height:16px; display:grid; place-items:center; }
.brand strong { display:block; font:600 20px/1 Georgia,serif; letter-spacing:.01em; }
.brand small { display:block; font-size:10px; margin-top:5px; opacity:.78; letter-spacing:.1em; text-transform:uppercase; }
.nav { display:flex; align-items:center; gap:clamp(17px,2vw,28px); margin-left:auto; }
.nav a { font-size:13px; letter-spacing:.02em; opacity:.9; position:relative; white-space:nowrap; }
.nav a::after { content:''; position:absolute; left:0; right:100%; bottom:-8px; height:1px; background:currentColor; transition:right .25s ease; }
.nav a:hover::after { right:0; }
.button { min-height:49px; display:inline-flex; align-items:center; justify-content:center; gap:9px; padding:0 22px; border-radius:3px; background:var(--wine); color:white; font-size:14px; font-weight:650; border:1px solid var(--wine); transition:transform .25s ease,background .25s ease,color .25s ease; }
.button:hover { transform:translateY(-2px); background:var(--wine-dark); }
.button-light { background:var(--paper); border-color:var(--paper); color:var(--wine-dark); }
.button-light:hover { background:#efe5d8; }
.header-cta { background:white; color:var(--wine-dark); border-color:white; min-height:43px; padding-inline:17px; }
.menu-button { display:none; color:white; background:none; border:0; padding:8px; }
.hero { min-height:720px; height:min(880px,100vh); position:relative; color:white; display:grid; align-items:center; overflow:hidden; }
.hero-image { position:absolute; inset:0; background-size:cover; background-position:center; transform:scale(1.015); animation:heroIn 1.4s ease both; }
.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(43,21,22,.88) 0%,rgba(57,31,26,.68) 42%,rgba(57,31,26,.08) 72%),linear-gradient(0deg,rgba(42,22,17,.28),transparent 45%); }
.hero-content { position:relative; padding-top:78px; }
.hero-content>* { max-width:715px; animation:fadeUp .75s ease both; }
.hero-content h1 { margin:20px 0 24px; font:400 clamp(44px,6vw,78px)/1.07 Georgia,serif; letter-spacing:-.045em; }
.hero-content h1 em,h2 em { font-weight:400; color:#dec2b8; }
.hero-copy { font:400 clamp(16px,2vw,19px)/1.72 "Segoe UI",sans-serif; color:rgba(255,255,255,.84); }
.eyebrow { display:flex; align-items:center; gap:12px; margin:0; text-transform:uppercase; font-size:11px; font-weight:700; letter-spacing:.22em; }
.eyebrow span { width:35px; height:1px; background:currentColor; }
.eyebrow.dark { color:var(--wine); }
.hero-actions { display:flex; gap:12px; margin-top:34px; }
.hero-actions .button:first-child { background:var(--wine); border-color:#9b5364; }
.scroll-cue { position:absolute; left:50%; bottom:28px; width:25px; height:40px; border:1px solid rgba(255,255,255,.5); border-radius:20px; }
.scroll-cue span { width:3px; height:7px; border-radius:3px; background:white; position:absolute; left:10px; top:8px; animation:scroll 1.8s infinite; }
.section { padding:105px 0; }
.about { background:var(--paper); }
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:10%; align-items:start; }
.section-heading h2,.section-title h2,.craft-content h2,.prayer-content h2,.cta-inner h2 { font:400 clamp(35px,4vw,54px)/1.12 Georgia,serif; letter-spacing:-.035em; margin:18px 0 0; }
.section-heading h2 em,.section-title h2 em,.craft-content h2 em { color:var(--wine); }
.about-copy { border-left:1px solid var(--line); padding-left:46px; }
.about-copy p { color:var(--muted); font-size:16px; line-height:1.85; margin:0 0 16px; }
.signature { margin-top:32px; font:italic 26px Georgia,serif; color:var(--wine); }
.signature span { display:block; margin-top:6px; font:700 10px "Segoe UI",sans-serif; color:var(--olive); text-transform:uppercase; letter-spacing:.18em; }
.products-section { background:var(--cream); }
.section-title.centered { text-align:center; max-width:650px; margin:0 auto 48px; }
.section-title.centered .eyebrow { justify-content:center; }
.section-title>p:last-child { color:var(--muted); line-height:1.7; }
.product-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; align-items:stretch; }
.product-card { display:flex; flex-direction:column; background:var(--paper); border:1px solid rgba(109,80,55,.13); transition:transform .3s ease,box-shadow .3s ease; }
.product-card:hover { transform:translateY(-7px); box-shadow:0 22px 60px rgba(76,47,31,.12); }
.product-image-wrap { height:285px; overflow:hidden; position:relative; }
.product-image-wrap img { width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.product-card:hover img { transform:scale(1.04); }
.product-no { position:absolute; left:15px; top:15px; width:35px; height:35px; background:rgba(255,253,249,.9); color:var(--wine); display:grid; place-items:center; font:italic 13px Georgia,serif; }
.product-body { padding:25px; display:flex; flex:1; flex-direction:column; align-items:flex-start; }
.product-kicker { margin-bottom:8px; color:var(--rose); font-size:10px; font-weight:750; letter-spacing:.14em; text-transform:uppercase; }
.product-body h3 { margin:0 0 10px; font:400 24px Georgia,serif; }
.product-body p { min-height:68px; margin:0 0 20px; color:var(--muted); font-size:14px; line-height:1.65; }
.product-body a,.text-link { display:inline-flex; gap:8px; align-items:center; color:var(--wine); font-size:13px; font-weight:700; }
.product-body .product-wa { width:100%; min-height:46px; margin-top:auto; justify-content:center; border:1px solid var(--wine); background:var(--wine); color:white; transition:background .25s ease,transform .25s ease; }
.product-body .product-wa:hover { background:var(--wine-dark); transform:translateY(-2px); }
.craft { background:var(--paper); }
.craft-grid { display:grid; grid-template-columns:1.05fr .95fr; gap:9%; align-items:center; }
.craft-image { position:relative; padding:0 0 30px 30px; }
.craft-image::before { content:''; position:absolute; left:0; bottom:0; width:75%; height:72%; background:#ddd1bd; }
.craft-image img { position:relative; width:100%; aspect-ratio:4/3; object-fit:cover; }
.stitch-badge { position:absolute; z-index:2; right:-20px; bottom:2px; background:var(--wine); color:white; padding:17px 20px; display:flex; gap:10px; align-items:center; font:italic 16px Georgia,serif; }
.craft-content>p:nth-of-type(2) { color:var(--muted); line-height:1.8; margin:25px 0; }
.craft-content ul { list-style:none; display:grid; grid-template-columns:1fr 1fr; padding:0; margin:25px 0 34px; gap:14px 20px; }
.craft-content li { display:flex; align-items:center; gap:10px; font:400 15px Georgia,serif; }
.craft-content li span { width:26px; height:26px; border:1px solid var(--line); border-radius:50%; color:var(--olive); display:grid; place-items:center; }
.prayer-section { background:var(--wine-dark); color:white; padding:90px 0; overflow:hidden; }
.prayer-grid { display:grid; grid-template-columns:.85fr 1.15fr; align-items:center; gap:8%; }
.prayer-content h2 { font-size:clamp(40px,5vw,65px); }
.prayer-content p:nth-of-type(2) { color:rgba(255,255,255,.72); line-height:1.8; margin:25px 0 30px; max-width:480px; }
.prayer-image { display:block; padding:0; border:0; background:none; height:550px; width:100%; position:relative; cursor:zoom-in; }
.prayer-image::before { content:''; position:absolute; inset:-18px 28px 18px -18px; border:1px solid rgba(255,255,255,.18); }
.prayer-image img { width:100%; height:100%; object-fit:cover; position:relative; }
.prayer-image span { position:absolute; right:0; bottom:0; padding:14px 18px; display:flex; align-items:center; gap:8px; color:var(--wine-dark); background:var(--paper); font-weight:700; font-size:12px; }
.gallery-section { background:var(--paper); }
.gallery-title { display:flex; justify-content:space-between; align-items:end; margin-bottom:42px; }
.gallery-title>p { max-width:330px; }
.gallery-grid { display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:250px; gap:14px; }
.gallery-item { padding:0; border:0; overflow:hidden; cursor:zoom-in; position:relative; background:#ddd; }
.gallery-item.wide { grid-column:span 2; } .gallery-item.tall { grid-row:span 2; }
.gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform .55s ease,filter .3s ease; }
.gallery-item:nth-child(6) img { object-position:75% center; }
.gallery-item span { position:absolute; inset:0; display:grid; place-items:center; color:white; background:rgba(67,27,36,.24); opacity:0; transition:opacity .3s ease; }
.gallery-item:hover img { transform:scale(1.05); } .gallery-item:hover span { opacity:1; }
.process { padding-top:10px; background:var(--paper); }
.process-grid { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); }
.process-grid li { padding:35px 38px; border-right:1px solid var(--line); } .process-grid li:last-child { border:0; }
.process-grid span { font:italic 20px Georgia,serif; color:var(--rose); }
.process-grid h3 { font:400 22px Georgia,serif; margin:18px 0 10px; }
.process-grid p { color:var(--muted); font-size:14px; line-height:1.65; margin:0; }
.cta-section { background:var(--wine); color:white; padding:75px 0; }
.cta-inner { display:flex; align-items:center; justify-content:space-between; gap:50px; }
.cta-inner h2 { margin-top:14px; font-size:clamp(32px,4vw,49px); }
.cta-actions { display:flex; flex-direction:column; align-items:center; gap:16px; min-width:275px; }
.cta-actions>a:last-child { display:flex; gap:9px; align-items:center; color:rgba(255,255,255,.82); font-size:14px; }
footer { background:#2f2621; color:white; }
.footer-grid { min-height:150px; display:flex; justify-content:space-between; align-items:center; }
.footer-brand .brand-mark::after { background:#2f2621; }
.footer-contact { display:flex; gap:30px; }
.footer-contact a { display:flex; align-items:center; gap:8px; color:rgba(255,255,255,.72); font-size:14px; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.1); color:rgba(255,255,255,.46); font-size:12px; }
.footer-bottom .container { min-height:58px; display:flex; justify-content:space-between; align-items:center; }
.footer-bottom a { color:#ddbbb1; }
.floating-actions { position:fixed; z-index:24; right:22px; bottom:22px; display:flex; flex-direction:column; gap:9px; }
.floating-actions a { min-width:132px; min-height:46px; padding:0 16px; border-radius:30px; display:flex; align-items:center; gap:9px; color:white; box-shadow:0 9px 25px rgba(0,0,0,.2); font-size:13px; font-weight:650; transition:transform .2s ease; }
.floating-actions a:hover { transform:translateX(-4px); } .floating-actions svg { width:19px; }
.float-wa { background:#47755c; } .float-phone { background:var(--wine); }
.lightbox { position:fixed; inset:0; z-index:80; width:100%; height:100%; max-width:none; max-height:none; margin:0; border:0; background:rgba(24,18,16,.92); display:grid; place-items:center; padding:40px; animation:fade .2s ease; }
.lightbox img { max-width:min(1000px,92vw); max-height:87vh; object-fit:contain; box-shadow:0 20px 80px rgba(0,0,0,.45); }
.lightbox button { position:absolute; right:28px; top:24px; width:45px; height:45px; border:1px solid rgba(255,255,255,.3); background:transparent; color:white; border-radius:50%; display:grid; place-items:center; cursor:pointer; }
.lightbox:not([open]) { display:none; }
.brand-logo { width:68px; height:52px; object-fit:contain; }
.not-found { min-height:100vh; display:grid; place-items:center; text-align:center; padding:30px; background:var(--paper); }
.not-found>div { max-width:620px; }
.not-found span { font:italic 90px Georgia,serif; color:var(--rose); }
.not-found h1 { font:400 clamp(34px,6vw,58px)/1.1 Georgia,serif; margin:10px 0 16px; }
.not-found p { color:var(--muted); margin-bottom:28px; }
.menu-button span { display:block; width:25px; height:2px; background:currentColor; margin:5px 0; }
[data-reveal] { opacity:0; transform:translateY(24px); transition:opacity .7s ease,transform .7s ease; }
[data-reveal].revealed { opacity:1; transform:translateY(0); }
@keyframes fadeUp { from { opacity:0; transform:translateY(22px); } }
@keyframes heroIn { from { transform:scale(1.08); opacity:.5; } }
@keyframes scroll { 0%{opacity:0;transform:translateY(0)} 30%{opacity:1} 100%{opacity:0;transform:translateY(13px)} }
@keyframes fade { from { opacity:0; } }
@media (max-width:980px) {
  .header-cta { display:none; } .menu-button { display:block; }
  .nav { display:none; position:absolute; top:86px; left:20px; right:20px; background:var(--paper); color:var(--ink); padding:18px; box-shadow:0 20px 45px rgba(40,25,17,.18); flex-direction:column; align-items:stretch; gap:0; }
  .nav.open { display:flex; } .nav a { padding:13px 8px; border-bottom:1px solid var(--line); } .nav a:last-child { border:0; }
  .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .product-card:last-child { grid-column:1/-1; max-width:calc(50% - 11px); width:100%; justify-self:center; }
  .prayer-grid { gap:5%; } .gallery-grid { grid-template-columns:repeat(3,1fr); } .cta-inner { align-items:flex-start; }
}
@media (max-width:720px) {
  .container { width:min(100% - 28px,1180px); } .header-inner { height:76px; } .brand strong { font-size:18px; } .brand-mark { width:41px; height:41px; } .nav { top:76px; left:14px; right:14px; }
  .hero { min-height:700px; height:100svh; } .hero-image { background-position:63% center; } .hero-shade { background:linear-gradient(90deg,rgba(44,21,22,.9),rgba(52,27,25,.58)),linear-gradient(0deg,rgba(30,15,13,.5),transparent); }
  .hero-content { padding-top:65px; } .hero-content h1 { font-size:clamp(39px,12vw,58px); } .hero-content h1 br { display:none; } .hero-actions { flex-direction:column; align-items:stretch; max-width:340px; }
  .section { padding:76px 0; } .about-grid,.craft-grid,.prayer-grid { grid-template-columns:1fr; } .about-grid { gap:35px; } .about-copy { padding-left:22px; }
  .product-grid { display:grid; grid-template-columns:1fr; } .product-card { margin-bottom:0; } .product-card:last-child { grid-column:auto; max-width:none; } .product-image-wrap { height:310px; } .product-body p { min-height:auto; }
  .craft-grid { gap:44px; } .craft-image { padding:0 0 20px 16px; } .stitch-badge { right:0; } .craft-content ul { grid-template-columns:1fr; }
  .prayer-section { padding:76px 0; } .prayer-grid { gap:48px; } .prayer-image { height:460px; }
  .gallery-title { display:block; } .gallery-title>p { margin-top:18px; } .gallery-grid { grid-template-columns:1fr 1fr; grid-auto-rows:210px; } .gallery-item.wide { grid-column:span 2; } .gallery-item.tall { grid-row:span 1; }
  .process-grid { grid-template-columns:1fr; border-top:0; } .process-grid li { border-right:0; border-top:1px solid var(--line); padding-inline:12px; }
  .cta-inner { flex-direction:column; } .cta-actions { width:100%; align-items:stretch; min-width:0; } .cta-actions>a:last-child { justify-content:center; }
  .footer-grid { flex-direction:column; align-items:flex-start; justify-content:center; gap:28px; padding-block:38px; } .footer-contact { flex-direction:column; gap:15px; }
  .footer-bottom .container { align-items:flex-start; justify-content:center; flex-direction:column; gap:6px; padding-block:14px 95px; }
  .floating-actions { right:12px; left:12px; bottom:12px; flex-direction:row; } .floating-actions a { min-width:0; flex:1; justify-content:center; min-height:49px; }
  .lightbox { padding:18px; } .lightbox button { right:12px; top:12px; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.01ms!important; transition-duration:.01ms!important; } [data-reveal] { opacity:1; transform:none; } }
