/* W-CRYO – mobile-first */
@font-face{font-family:"Fraunces";src:url(fonts/fraunces-latin.woff2) format("woff2");font-weight:500 700;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+2000-206F,U+20AC}
@font-face{font-family:"Fraunces";src:url(fonts/fraunces-latin-ext.woff2) format("woff2");font-weight:500 700;font-style:normal;font-display:swap;unicode-range:U+0100-017F}
@font-face{font-family:"Inter";src:url(fonts/inter-latin.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap;unicode-range:U+0000-00FF,U+2000-206F,U+20AC}
@font-face{font-family:"Inter";src:url(fonts/inter-latin-ext.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap;unicode-range:U+0100-017F}

:root{
  --green:#19402d; --green-2:#24573e; --lime:#9fe870; --lime-2:#b8f094;
  --mint:#f1f7f3; --mint-2:#e0f4e6; --white:#fff;
  --ink:#19402d; --ink-soft:#3d6350;
  --serif:"Fraunces",Georgia,"Times New Roman",serif;
  --sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --pad:clamp(1.25rem,5vw,3rem);
  --r:1.75rem;
  --shadow:0 .75rem 2rem -1rem rgba(25,64,45,.35);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--mint);color:var(--ink);font:400 1rem/1.6 var(--sans);overflow-x:clip}
img,svg{display:block;max-width:100%}
picture{display:block}
img{height:auto}
a{color:inherit}
h1,h2,h3{font-family:var(--serif);font-weight:650;line-height:1.05;margin:0;letter-spacing:-.01em;font-variation-settings:"SOFT" 50}
p{margin:0}
:focus-visible{outline:3px solid var(--green);outline-offset:3px;border-radius:.4rem}
[id]{scroll-margin-top:1rem}
.skip{position:absolute;left:1rem;top:-4rem;z-index:100;background:var(--green);color:var(--mint);padding:.75rem 1rem;border-radius:999px;text-decoration:none;font-weight:600}
.skip:focus{top:1rem}
.wrap{max-width:76rem;margin-inline:auto;padding-inline:var(--pad)}
.center{text-align:center}

/* header */
.top{display:flex;justify-content:center;padding:1rem var(--pad) .5rem}
.logo img{width:8.5rem;height:auto}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:3.5rem;padding:.9rem 1.6rem;border-radius:999px;background:var(--lime);color:var(--green);font:600 1.0625rem/1.2 var(--sans);text-decoration:none;box-shadow:0 .5rem 1.25rem -.6rem rgba(25,64,45,.45);transition:transform .2s ease,background-color .2s ease}
.btn:hover{background:var(--lime-2);transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn.wide{width:100%;margin-top:1.75rem}
.h2{font-size:clamp(2.25rem,9vw,4rem);text-align:center;margin-bottom:clamp(2rem,6vw,3.5rem)}
.eyebrow{display:inline-block;font:600 .9375rem/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;background:var(--green);color:var(--lime);padding:.55rem .9rem;border-radius:999px;margin-bottom:1.25rem}

/* hero */
.hero{padding:.5rem var(--pad) 3rem;overflow-x:clip}
.hero-title{display:flex;flex-direction:column;align-items:center;text-align:center;font-size:clamp(2.75rem,14vw,6.75rem);line-height:.98;gap:.12em}
.l{display:block;white-space:nowrap}
.pill{display:block;width:88%;height:clamp(5.5rem,27vw,10rem);border-radius:999px;overflow:hidden;background:var(--mint-2)}
.pill img,.pill picture{width:100%;height:100%;object-fit:cover}
.p1{align-self:flex-end;margin-right:calc(-1 * var(--pad))}
.p2{align-self:flex-start;margin-left:calc(-1 * var(--pad))}
.p1 img{object-position:50% 40%}
.p2 img{object-position:40% 50%}
.hero-cta{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:1.75rem}
.hero-call{display:flex;flex-direction:column;align-items:center;gap:.5rem}
.hero-tel{font-weight:600;color:var(--ink-soft);text-decoration:none;font-size:1rem}
.hero-tel:hover{text-decoration:underline}
.badge{position:relative;width:5.75rem;height:5.75rem;flex:none;display:grid;place-items:center;text-decoration:none;color:var(--green)}
.badge svg{position:absolute;inset:0;width:100%;height:100%}
.badge path{fill:var(--mint-2);stroke:var(--green);stroke-width:1.5}
.badge span{position:relative;font:600 .8125rem/1 var(--sans);transform:rotate(-12deg)}
@media (prefers-reduced-motion:no-preference){.badge svg{animation:spin 24s linear infinite}}
@keyframes spin{to{transform:rotate(360deg)}}

/* about */
.about{padding:2rem 0 3.5rem}
.about-text{text-align:center}
.lead{font-size:clamp(1.25rem,4.6vw,1.6rem);line-height:1.5;font-weight:500;max-width:38rem;margin-inline:auto}
.gallery{list-style:none;margin:2.5rem calc(-1 * var(--pad)) 0;padding:.5rem var(--pad) 1rem;display:grid;grid-auto-flow:column;grid-auto-columns:62%;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--pad);scrollbar-width:none;overscroll-behavior-x:contain}
.gallery::-webkit-scrollbar{display:none}
.gallery li{scroll-snap-align:start;aspect-ratio:3/4.2;border-radius:999px;overflow:hidden;background:var(--mint-2)}
.gallery img,.gallery picture{width:100%;height:100%;object-fit:cover}

/* services */
.services{padding:3.5rem 0;background:var(--mint-2);border-radius:2.5rem}
.cards{display:grid;gap:2.75rem;margin-bottom:2.75rem}
.card{background:var(--white);border-radius:var(--r);padding:.75rem .75rem 1.75rem;box-shadow:var(--shadow)}
.card-media{position:relative;margin-bottom:1.5rem}
.card-media picture{border-radius:calc(var(--r) - .5rem);overflow:hidden;aspect-ratio:4/3}
.card-media img{width:100%;height:100%;object-fit:cover}
.sticker{position:absolute;right:-.25rem;bottom:-1.1rem;background:var(--lime);color:var(--green);font:650 1.25rem/1 var(--serif);padding:.8rem 1.1rem;border-radius:999px;transform:rotate(-6deg);box-shadow:0 .4rem 1rem -.4rem rgba(25,64,45,.5);white-space:nowrap}
.sticker.s1{transform:rotate(5deg)}
.sticker.s2{transform:rotate(-3deg)}
.card-title,.card-sub,.card p{padding-inline:.75rem}
.card-title{font-size:clamp(1.75rem,7vw,2.1rem);margin-bottom:.5rem}
.card-sub{font-weight:600;color:var(--green);margin-bottom:.6rem}
.card p:last-child{color:var(--ink-soft);font-size:1.0625rem}

/* reviews */
.reviews-sec{padding:4.5rem 0 3rem}
.reviews{list-style:none;margin:0;padding:1.5rem var(--pad) 2rem;display:grid;grid-auto-flow:column;grid-auto-columns:min(82%,22rem);gap:1.25rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--pad);scrollbar-width:none;overscroll-behavior-x:contain}
.reviews::-webkit-scrollbar{display:none}
.review{scroll-snap-align:center;display:flex}
.review figure{margin:0;padding:1.75rem 1.5rem;border-radius:var(--r);background:var(--white);box-shadow:var(--shadow);display:flex;flex-direction:column;justify-content:space-between;gap:1.5rem;width:100%;transform:rotate(-2.5deg)}
.r1 figure{background:var(--lime);transform:rotate(2deg)}
.r2 figure{background:var(--mint-2);transform:rotate(-1.5deg)}
.review blockquote{margin:0;font:500 1.1875rem/1.45 var(--sans)}
.review figcaption{display:flex;align-items:center;gap:.75rem;font-weight:600}
.avatar{width:2.75rem;height:2.75rem;border-radius:50%;display:grid;place-items:center;background:var(--green);color:var(--lime);font:650 1rem/1 var(--serif);letter-spacing:.03em;flex:none}

/* blog */
.blog{padding:3.5rem 0}
.posts{display:grid;gap:1.5rem}
.post-card a{display:block;height:100%;text-decoration:none;background:var(--white);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);transition:transform .25s ease}
.post-card a:hover{transform:translateY(-4px)}
.post-media picture{aspect-ratio:16/10;overflow:hidden}
.post-media img{width:100%;height:100%;object-fit:cover}
.post-body{padding:1.5rem 1.5rem 1.75rem}
.post-body h3{font-size:clamp(1.5rem,6vw,1.9rem);margin-bottom:.75rem}
.post-body p{color:var(--ink-soft)}
.more{display:inline-flex;align-items:center;gap:.4rem;margin-top:1.25rem;font-weight:600;background:var(--mint-2);padding:.6rem 1rem;border-radius:999px}
.post-card a:hover .more{background:var(--lime)}

/* contact */
.contact{padding:3.5rem 0 4.5rem}
.contact-grid{display:grid;gap:1.25rem}
.panel{background:var(--white);border-radius:var(--r);padding:2rem 1.5rem;box-shadow:var(--shadow)}
.panel .h2{font-size:clamp(2rem,8vw,2.75rem);text-align:left;margin-bottom:1.75rem}
.citem+.citem{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--mint-2)}
.clabel{font-size:.9375rem;color:var(--ink-soft);margin-bottom:.3rem}
.cvalue{display:inline-block;font:650 1.35rem/1.3 var(--serif);text-decoration:none}
a.cvalue{text-decoration:underline;text-decoration-color:var(--lime);text-decoration-thickness:3px;text-underline-offset:5px}
.cvalue.big{font-size:clamp(1.6rem,7vw,2rem)}
.link{display:flex;width:max-content;max-width:100%;align-items:center;gap:.4rem;margin-top:.75rem;font-weight:600;padding:.55rem .95rem;border-radius:999px;background:var(--mint-2);text-decoration:none}
.link:hover{background:var(--lime)}
.hours{margin:0}
.hrow{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 0;border-bottom:1px solid var(--mint-2)}
.hrow dt{font-weight:600;font-size:1.0625rem}
.hrow dd{margin:0}
.tag{display:inline-block;background:var(--lime);padding:.45rem .8rem;border-radius:999px;font-weight:600;font-size:.9375rem;transform:rotate(-3deg)}
.hrow:nth-child(2) .tag{transform:rotate(2deg)}
.tag.closed{background:var(--mint-2);transform:none}

/* footer */
.footer{background:var(--green);color:var(--mint);padding:3.5rem 0 calc(6.5rem + env(safe-area-inset-bottom));border-radius:2.5rem 2.5rem 0 0}
.footer a{color:var(--mint);text-decoration:none}
.footer a:hover{color:var(--lime);text-decoration:underline}
.footer-grid{display:grid;gap:2rem}
.footer-bottom p{padding-top:1.5rem;border-top:1px solid rgba(241,247,243,.18)}
.footer-brand img{width:10rem}
.footer-h{font:600 .875rem/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--lime);margin-bottom:.9rem}
.footer address{font-style:normal;line-height:1.9}
.footer-links{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem 1.25rem}
.footer-bottom{margin-top:2.5rem;font-size:.9375rem;color:#c9dccf}

/* floating dock */
.dock{position:fixed;z-index:50;left:.75rem;right:.75rem;bottom:calc(.75rem + env(safe-area-inset-bottom));display:flex;align-items:center;gap:.5rem;pointer-events:none}
.dock>*{pointer-events:auto}
.dock-nav{flex:1;min-width:0;display:flex;gap:.25rem;padding:.35rem;border-radius:999px;background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 .6rem 1.75rem -.5rem rgba(25,64,45,.4);overflow-x:auto;scrollbar-width:none;overscroll-behavior-x:contain}
.dock-nav::-webkit-scrollbar{display:none}
.dock-nav a{flex:none;padding:.7rem 1rem;border-radius:999px;font-weight:600;font-size:.9375rem;line-height:1.2;text-decoration:none;white-space:nowrap;transition:background-color .2s ease}
.dock-nav a:hover{background:var(--mint-2)}
.dock-nav a[aria-current="true"]{background:var(--green);color:var(--mint)}
.dock-call{flex:none;width:3.5rem;height:3.5rem;border-radius:50%;display:grid;place-items:center;background:var(--lime);color:var(--green);box-shadow:0 .6rem 1.75rem -.5rem rgba(25,64,45,.55);text-decoration:none}
.dock-call span{display:none}
@media (prefers-reduced-motion:no-preference){.dock-call svg{animation:ring 4s ease-in-out 2s infinite}}
@keyframes ring{0%,88%,100%{transform:rotate(0)}90%{transform:rotate(-14deg)}92%{transform:rotate(14deg)}94%{transform:rotate(-10deg)}96%{transform:rotate(8deg)}}

/* article */
.article{max-width:52rem;padding-top:1rem;padding-bottom:2rem}
.back{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;text-decoration:none;padding:.55rem .95rem;border-radius:999px;background:var(--mint-2);margin-bottom:1.75rem}
.back:hover{background:var(--lime)}
.article-title{font-size:clamp(2.1rem,8.5vw,3.75rem);margin-bottom:1rem}
.article-date{color:var(--ink-soft);margin-bottom:1.75rem}
.article-media picture{border-radius:var(--r);overflow:hidden;aspect-ratio:16/10}
.article-media img{width:100%;height:100%;object-fit:cover}
.prose{max-width:40rem;margin:2.25rem auto 0;font-size:1.125rem;line-height:1.7}
.prose p+p,.prose h2+p,.prose p+h2{margin-top:1.25rem}
.prose h2{font-size:1.6rem;margin-top:2rem}
.prose a{text-decoration-color:var(--lime);text-decoration-thickness:3px;text-underline-offset:4px;font-weight:700}
.article-cta{max-width:40rem;margin:2.5rem auto 0;background:var(--green);color:var(--mint);border-radius:var(--r);padding:2rem 1.5rem;text-align:center}
.cta-h{font:650 1.6rem/1.15 var(--serif);margin-bottom:1.25rem}
.more-posts{padding-top:1.5rem}
.posts.one{max-width:40rem;margin-inline:auto}

/* ≥ 640 */
@media (min-width:640px){
  .cards{grid-template-columns:repeat(2,1fr)}
  .contact-grid{grid-template-columns:repeat(2,1fr)}
  .posts{grid-template-columns:repeat(2,1fr)}
  .posts.one{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1.2fr 1fr 1fr}
  .gallery{grid-auto-columns:40%}
}
/* ≥ 768: dock centered with labelled call button */
@media (min-width:768px){
  .dock{left:50%;right:auto;transform:translateX(-50%);gap:.5rem}
  .dock-nav{flex:none;overflow:visible}
  .dock-call{width:auto;height:auto;border-radius:999px;padding:.95rem 1.35rem;display:flex;gap:.5rem;font-weight:600}
  .dock-call span{display:inline}
  .panel{padding:2.5rem}
}
/* ≥ 960 */
@media (min-width:960px){
  .top{padding-top:1.5rem}
  .logo img{width:10rem}
  .hero{padding-bottom:4rem}
  .hero-title{display:grid;grid-template-columns:1fr 1fr;align-items:center;column-gap:1.5rem;row-gap:.25rem;font-size:clamp(4.5rem,7.4vw,7rem);max-width:90rem;margin-inline:auto}
  .l1{grid-column:1;grid-row:1;justify-self:end}
  .p1{grid-column:2;grid-row:1;width:auto;justify-self:stretch;height:1.2em;margin-right:calc(-1 * var(--pad))}
  .p2{grid-column:1;grid-row:2;width:auto;justify-self:stretch;height:1.2em;margin-left:calc(-1 * var(--pad))}
  .p1 img{object-position:55% 45%}
  .p2 img{object-position:50% 30%}
  .l2{grid-column:2;grid-row:2;justify-self:start}
  .l3{grid-column:1 / -1;grid-row:3}
  .hero-cta{margin-top:2.5rem}
  .about-grid{display:grid;grid-template-columns:5fr 7fr;gap:3rem;align-items:center}
  .about-text{text-align:left}
  .gallery{margin:0;padding:0;overflow:visible;grid-auto-flow:row;grid-template-columns:repeat(4,1fr);grid-auto-columns:auto;gap:1rem}
  .gallery li:nth-child(even){transform:translateY(2.5rem)}
  .gallery li:nth-child(odd){transform:translateY(-1rem)}
  .about{padding:5rem 0 6rem}
  .cards{grid-template-columns:repeat(3,1fr)}
  .services{padding:5rem 0;margin-inline:1.5rem}
  .reviews{max-width:76rem;margin-inline:auto;grid-auto-flow:row;grid-template-columns:repeat(3,1fr);overflow:visible}
  .blog,.contact{padding-block:5rem}
  .contact-grid{grid-template-columns:1.1fr 1fr}
}
