@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Serif+Display:ital@0;1&display=swap');

:root{
  --ink:#242321;
  --muted:#6e6a64;
  --cream:#f8f5ee;
  --paper:#fffdf8;
  --line:#ddd7cc;
  --coral:#df735f;
  --sage:#cbd9c8;
  --gold:#e7c98f;
  --shadow:0 18px 50px rgba(36,35,33,.10);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:92px}
section[id]{scroll-margin-top:92px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif}
body.modal-open{overflow:hidden}
a{color:inherit}
.site-header{height:92px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(24px,6vw,92px);background:rgba(255,253,248,.96);position:sticky;top:0;z-index:20}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none}
.brand-mark{width:42px;height:42px;border-radius:50%;background:var(--ink);color:white;display:grid;place-items:center;font-size:13px;font-weight:700;letter-spacing:.04em}
.brand strong{display:block;font-family:'DM Serif Display',Georgia,serif;font-size:22px;font-weight:400;line-height:1}
.brand small{display:block;margin-top:5px;color:var(--muted);font-size:10px;letter-spacing:.13em}
.nav{display:flex;gap:34px;font-size:15px;font-weight:600}
.nav a{text-decoration:none}
.nav a:hover{text-decoration:underline;text-underline-offset:5px}
.menu-button{display:none;background:none;border:0;font-size:25px;cursor:pointer;color:var(--ink)}
:focus-visible{outline:3px solid var(--coral);outline-offset:4px}
.product-card:focus-visible .product-image{box-shadow:0 0 0 3px var(--coral)}

.hero{min-height:calc(100vh - 92px);padding:clamp(50px,7vw,100px) clamp(24px,8vw,130px);display:grid;grid-template-columns:1fr .9fr;gap:7vw;align-items:center;background:var(--paper)}
.hero-copy{max-width:690px}
.eyebrow{font-size:12px;letter-spacing:.22em;font-weight:700;color:#716c64;margin:0 0 25px}
h1,h2,h3{font-family:'DM Serif Display',Georgia,serif;font-weight:400;margin:0}
h1{font-size:clamp(64px,7.6vw,122px);line-height:.83;letter-spacing:-.045em}
h1 em,h2 em{color:var(--coral);font-style:italic}
.hero-text{max-width:620px;font-size:20px;line-height:1.55;color:var(--muted);margin:40px 0 32px}
.hero-actions{display:flex;align-items:center;gap:30px;flex-wrap:wrap}
.button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border-radius:999px;padding:15px 25px;font-weight:700;font-size:14px;transition:transform .2s,box-shadow .2s}
.button:hover{transform:translateY(-2px);box-shadow:0 10px 25px rgba(0,0,0,.12)}
.button.dark{background:var(--ink);color:#fff}
.button.light{background:#fff;color:var(--ink)}
.text-link{text-decoration:none;font-weight:700;font-size:14px}
.text-link span{font-size:20px;margin-left:5px}
.hero-image{height:min(680px,68vw);min-height:500px;border-radius:28px;overflow:hidden;position:relative;display:block;box-shadow:var(--shadow)}
.hero-image img{width:100%;height:100%;object-fit:cover}
.hero-image:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 50%,rgba(0,0,0,.72))}
.hero-image-caption{position:absolute;left:36px;bottom:32px;color:#fff;z-index:1}
.hero-image-caption span{display:block;font-size:11px;letter-spacing:.2em;font-weight:700;margin-bottom:8px}
.hero-image-caption strong{font-family:'DM Serif Display',Georgia,serif;font-size:32px;font-weight:400}

.intro-band{background:var(--cream);padding:95px clamp(24px,10vw,150px);display:grid;grid-template-columns:1fr 1fr;gap:9vw;align-items:end}
.intro-band h2{font-size:clamp(42px,5vw,70px);line-height:.95}
.intro-band h2 em{color:var(--ink)}
.intro-band>p{font-size:18px;line-height:1.7;color:var(--muted);max-width:620px;margin:0}

.catalog-section{padding:110px clamp(24px,7vw,110px)}
.section-head{display:grid;grid-template-columns:1fr .75fr;gap:8vw;align-items:end;margin-bottom:42px}
.section-head h2{font-size:clamp(50px,5.5vw,80px);line-height:.9}
.section-head>p{color:var(--muted);line-height:1.6;font-size:16px;margin:0}
.section-head a{font-weight:700}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:35px}
.filter{border:1px solid var(--line);background:transparent;border-radius:999px;padding:11px 19px;font:600 14px 'DM Sans',sans-serif;cursor:pointer;color:var(--ink)}
.filter:hover,.filter.active{background:var(--ink);border-color:var(--ink);color:#fff}
.catalog-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.product-card{border:0;background:none;padding:0;text-align:left;cursor:pointer;color:inherit;min-width:0}
.product-image{display:block;aspect-ratio:1/1;overflow:hidden;border-radius:16px;background:#eee8df;margin-bottom:15px}
.product-image img{width:100%;height:100%;object-fit:contain;display:block;transition:transform .45s;padding:8px;box-sizing:border-box}
.product-card:hover .product-image img{transform:scale(1.035)}
.product-info{display:block;padding:0 4px}
.product-category{display:block;text-transform:uppercase;letter-spacing:.16em;font-size:9px;font-weight:700;color:#817b73;margin-bottom:6px}
.product-info strong{display:block;font-family:'DM Serif Display',Georgia,serif;font-size:23px;font-weight:400;line-height:1.05;margin-bottom:6px}
.product-info>span:last-child{display:block;color:var(--muted);font-size:12px;line-height:1.4}

.custom-section{background:var(--sage);display:grid;grid-template-columns:1fr 1fr;min-height:720px}
.custom-photo{overflow:hidden}
.custom-photo img{width:100%;height:100%;object-fit:cover;display:block}
.custom-copy{padding:clamp(55px,8vw,120px);display:flex;flex-direction:column;justify-content:center}
.custom-copy h2{font-size:clamp(55px,6vw,90px);line-height:.9;margin-bottom:28px}
.custom-copy h2 em{color:var(--coral)}
.custom-copy>p{font-size:18px;line-height:1.65;color:#4d514b;max-width:560px}
.custom-copy ul{list-style:none;padding:0;margin:18px 0 30px;display:grid;gap:10px}
.custom-copy li:before{content:"✦";margin-right:10px;color:var(--coral)}
.custom-process{padding:100px clamp(24px,9vw,140px);background:var(--paper);display:grid;grid-template-columns:.75fr 1.25fr;gap:9vw;align-items:start}
.custom-process-head h2{font-size:clamp(50px,5.2vw,76px);line-height:.9}
.custom-process-head h2 em{color:var(--coral)}
.process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.process-grid article{border-top:1px solid var(--line);padding-top:18px}
.process-grid article>span{font-size:10px;letter-spacing:.18em;font-weight:700;color:var(--coral)}
.process-grid h3{font-size:28px;margin:18px 0 10px}
.process-grid p{font-size:14px;line-height:1.6;color:var(--muted);margin:0}

.about-section{padding:125px clamp(24px,9vw,140px);display:grid;grid-template-columns:.9fr 1.1fr;gap:9vw;align-items:center;background:var(--paper)}
.about-photo{position:relative;border-radius:24px;overflow:hidden;box-shadow:var(--shadow);background:#e8e3d8}
.about-photo img{display:block;width:100%;height:min(760px,68vw);min-height:560px;object-fit:cover;object-position:center 58%}
.photo-caption{position:absolute;left:28px;bottom:25px;color:#fff;font-family:'DM Serif Display',Georgia,serif;font-size:27px;text-shadow:0 2px 15px rgba(0,0,0,.35)}
.about-copy{max-width:690px}
.about-copy h2{font-size:clamp(48px,5vw,76px);line-height:.95;margin-bottom:30px}
.about-copy h2 em{color:var(--coral)}
.about-copy p{font-size:17px;line-height:1.7;color:var(--muted)}
.about-copy .about-signoff{margin-top:30px;color:var(--ink);font-family:'DM Serif Display',Georgia,serif;font-size:22px;line-height:1.35}
.about-signoff strong{font-weight:400}
.about-signoff span{font-family:'DM Sans',Arial,sans-serif;font-size:13px;color:var(--muted);letter-spacing:.08em}
.about-values{background:var(--cream);padding:100px clamp(24px,9vw,140px);display:grid;grid-template-columns:.8fr 1.2fr;gap:9vw;align-items:start}
.about-values h2{font-size:clamp(48px,5vw,72px);line-height:.95}
.about-values h2 em{color:var(--coral)}
.value-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.value-grid article{border-top:1px solid var(--line);padding-top:18px}
.value-grid article>span{font-size:10px;letter-spacing:.18em;font-weight:700;color:var(--coral)}
.value-grid h3{font-size:27px;margin:18px 0 10px}
.value-grid p{font-size:14px;line-height:1.6;color:var(--muted);margin:0}

.contact-section{background:var(--ink);color:#fff;padding:100px clamp(24px,9vw,140px);display:grid;grid-template-columns:1fr .7fr;gap:10vw;align-items:center}
.contact-section h2{font-size:clamp(60px,6.5vw,100px);line-height:.88}
.contact-section h2 em{color:var(--coral)}
.contact-card{border-left:1px solid #5c5954;padding-left:45px}
.contact-card p{font-size:18px;line-height:1.6;color:#d4d0c9;margin-top:0;margin-bottom:28px}

.footer{padding:38px clamp(24px,6vw,92px);display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line)}
.footer-brand .brand-mark{width:36px;height:36px;font-size:11px}
.footer-brand strong{font-size:18px}
.footer-brand small{font-size:8px}
.footer p{color:var(--muted);font-size:12px}

.modal{position:fixed;inset:0;background:rgba(25,24,22,.75);z-index:50;display:none;place-items:center;padding:30px}
.modal.open{display:grid}
.modal-inner{background:var(--paper);max-width:1000px;width:100%;max-height:90vh;overflow:auto;border-radius:24px;display:grid;grid-template-columns:1fr 1fr}
.modal-inner>img{width:100%;height:100%;min-height:520px;object-fit:cover}
.modal-copy{padding:60px 50px;display:flex;flex-direction:column;justify-content:center}
.modal-copy h3{font-size:52px;line-height:.95;margin-bottom:18px}
.modal-copy>p:not(.eyebrow){color:var(--muted);line-height:1.6;margin-bottom:30px}
.modal-close{position:fixed;right:28px;top:22px;background:#fff;border:0;width:45px;height:45px;border-radius:50%;font-size:30px;line-height:1;cursor:pointer;z-index:51}

@media (max-width:1050px){
  .catalog-grid{grid-template-columns:repeat(3,1fr)}
  .hero{grid-template-columns:1fr .85fr}
  h1{font-size:clamp(60px,8vw,90px)}
}
@media (max-width:760px){
  .site-header{height:76px;padding:0 20px}
  .nav{display:none;position:absolute;top:76px;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--line);padding:20px;flex-direction:column;gap:20px}
  .nav.open{display:flex}
  .menu-button{display:block}
  .brand strong{font-size:19px}
  .brand small{font-size:8px}
  .hero{display:flex;flex-direction:column;padding:55px 22px 45px;gap:35px;min-height:0}
  h1{font-size:67px}
  .hero-text{font-size:17px;margin:30px 0}
  .hero-image{width:100%;height:500px;min-height:0}
  .intro-band,.section-head,.custom-section,.about-section,.contact-section{grid-template-columns:1fr}
  .intro-band{padding:70px 22px;gap:35px}
  .catalog-section{padding:75px 18px}
  .section-head{gap:30px}
  .section-head h2{font-size:58px}
  .catalog-grid{grid-template-columns:repeat(2,1fr);gap:20px 12px}
  .product-info strong{font-size:19px}
  .custom-section{grid-template-columns:1fr;min-height:0}
  .custom-photo{height:420px}
  .custom-copy{padding:70px 24px}
  .custom-process{grid-template-columns:1fr;gap:45px;padding:75px 24px}
  .process-grid{grid-template-columns:1fr;gap:32px}
  .custom-process{grid-template-columns:1fr;gap:45px;padding:75px 24px}
  .process-grid{grid-template-columns:1fr;gap:32px}
  .about-section{padding:75px 24px;gap:45px}
  .about-photo img{height:560px;min-height:0}
  .about-values{padding:70px 24px;gap:45px}
  .value-grid{grid-template-columns:1fr;gap:32px}
  .contact-section{padding:75px 24px;gap:45px}
  .contact-card{border-left:0;border-top:1px solid #5c5954;padding:30px 0 0}
  .footer{padding:30px 20px;align-items:flex-end}
  .modal{padding:12px}
  .modal-inner{grid-template-columns:1fr}
  .modal-inner>img{min-height:300px;max-height:55vh}
  .modal-copy{padding:32px 26px}
  .modal-copy h3{font-size:42px}
}
