/* Culture Made Joyful — responsive layout. Edit typography in :root. */
:root{
  --bg:#090806;
  --ink:#17100c;
  --paper:#ead4bb;
  --orange:#cf5420;
  --gold:#d79527;
  --cream:#f6eadc;
  --content-max:1180px;
  --page-pad:24px;
  --section-gap:12px;

  /* TYPE HIERARCHY */
  --hero-title:clamp(42px,3.65vw,50px);
  --hero-body:18px;
  --hero-roots:25px;
  --pillar-label:21px;
  --pillar-lead:18px;
  --pillar-body:15.5px;
  --jamaica-kicker:18px;
  --jamaica-title:34px;
  --jamaica-body:17px;
  --signup-copy:22px;
  --footer-size:14px;
  --shop-size:22px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--bg)}
body{
  margin:0;color:var(--cream);background-color:var(--bg);overflow-x:hidden;
  background-image:url('assets/background-field.svg'),url('assets/dark-grain.png');
  background-repeat:no-repeat,repeat;background-position:center top,center top;
  background-size:1820px auto,720px 720px;background-attachment:fixed,fixed;
  background-blend-mode:screen,normal;
  font-family:Arial,Helvetica,sans-serif;
}
a{color:inherit}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

.site-header{position:sticky;top:0;z-index:1000;background:rgba(8,7,5,.97);border-bottom:1px solid rgba(215,149,39,.42);box-shadow:0 8px 26px rgba(0,0,0,.30)}
.header-inner{width:min(var(--content-max),calc(100% - 2*var(--page-pad)));height:92px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:28px}
.brand img{display:block;width:395px;max-width:68vw;height:auto}
.header-shop{font-family:Georgia,'Times New Roman',serif;font-size:var(--shop-size);font-weight:700;letter-spacing:.10em;text-transform:uppercase;text-decoration:none;color:#efb455;border-bottom:2px solid #efb455;padding:8px 0 6px}
.page{width:min(var(--content-max),calc(100% - 2*var(--page-pad)));margin:0 auto;padding:28px 0 24px}
.art-section{position:relative;margin:0 0 var(--section-gap);filter:drop-shadow(0 18px 34px rgba(0,0,0,.24))}
.art-section>.section-art{display:block;width:100%;height:auto;pointer-events:none;user-select:none}

/* HERO */
.hero{aspect-ratio:822/433;overflow:visible}
.hero>.section-art{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}
.hero-copy{position:absolute;z-index:4;left:6.2%;top:12.7%;width:35.5%;color:var(--ink)}
.hero h1{font-family:Georgia,'Times New Roman',serif;font-size:var(--hero-title);font-weight:600;line-height:.98;letter-spacing:-.03em;margin:0 0 24px;max-width:400px;color:var(--ink)}
.hero h1 .hero-black{display:block}.hero h1 em{display:block;color:var(--orange);font-size:.80em;line-height:1.06;font-weight:400;margin-top:4px}
.hero-body{font-size:var(--hero-body);line-height:1.55;max-width:400px}.hero-body p{margin:0 0 3px}
.hero-roots{position:relative;margin:20px 0 12px;padding-top:13px;font-size:var(--hero-roots);font-weight:800;line-height:1.18}.hero-roots::before{content:"";position:absolute;left:0;top:0;width:48px;height:3px;background:var(--gold)}
.hero-brand{font-size:var(--hero-body);line-height:1.52;max-width:400px;margin:0}.hero-brand strong{color:var(--orange)}

/* ROOTS / CONNECTION / CONTINUITY */
.pillars{aspect-ratio:863/325;overflow:visible}
.pillars>.section-art{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}
.pillars-grid{position:absolute;z-index:4;left:16.3%;right:12.8%;top:21.2%;bottom:23%;display:grid;grid-template-columns:repeat(3,1fr);gap:6.4%;color:var(--ink)}
.pillar{text-align:center;align-self:start}.pillar h2{margin:0 0 12px;font-size:var(--pillar-label);font-weight:800;line-height:1;text-transform:uppercase;letter-spacing:.10em}.pillar h2::after{content:"";display:block;width:34px;height:2px;background:#d5782d;margin:11px auto 0}.pillar-lead{font-family:Georgia,'Times New Roman',serif;font-style:italic;color:#a44426;font-size:var(--pillar-lead);line-height:1.32;margin:0 auto 13px;max-width:285px}.pillar-body{font-size:var(--pillar-body);line-height:1.46;margin:0 auto;max-width:290px}

/* JAMAICA */
.jamaica{position:relative;min-height:535px;margin:0 0 var(--section-gap);border-top:1px solid rgba(215,149,39,.18);border-bottom:1px solid rgba(215,149,39,.18);overflow:visible}
.jamaica-copy{position:relative;z-index:4;width:46%;min-height:535px;padding:40px 34px 36px 42px;background:linear-gradient(90deg,rgba(8,7,5,.995) 0%,rgba(8,7,5,.985) 82%,rgba(8,7,5,.72) 93%,transparent 100%);display:flex;flex-direction:column;align-items:flex-start}
.jamaica-kicker{margin:0 0 12px;color:#e2a033;font-family:Georgia,'Times New Roman',serif;font-size:var(--jamaica-kicker);line-height:1.02;font-weight:700;letter-spacing:.015em;text-transform:uppercase}
.jamaica h2{margin:0 0 19px;color:#fff4e7;font-family:Georgia,'Times New Roman',serif;font-size:var(--jamaica-title);line-height:1.08;letter-spacing:-.018em;font-weight:500;max-width:500px}
.jamaica-copy p{font-size:var(--jamaica-body);line-height:1.55;margin:0 0 16px;max-width:490px;color:#f2e3d0}
.jamaica-button{margin-top:auto;display:inline-block;background:#c98217;color:#fff;text-decoration:none;text-transform:uppercase;font-size:13px;font-weight:800;letter-spacing:.07em;padding:15px 20px}
.jamaica-art{position:absolute;right:-1%;top:1%;width:67%;height:108%;object-fit:contain;object-position:right top;z-index:2;pointer-events:none}

/* SIGNUP */
.signup{aspect-ratio:2172/724;margin-top:-2px}
.signup>.section-art{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}
.signup-live{position:absolute;z-index:4;left:61%;top:47%;transform:translate(-50%,-50%);width:41%;max-width:540px;color:var(--ink);text-align:center}
.signup-live p{font-size:var(--signup-copy);line-height:1.34;margin:0 auto 15px;max-width:500px}.signup-live .cmj-line{display:block;margin-top:3px}
.signup-form{display:flex;align-items:stretch;min-height:50px;width:100%;max-width:500px;margin:0 auto}.signup-form input{flex:1;min-width:0;border:1px solid rgba(90,57,30,.28);background:rgba(255,249,239,.94);color:#20140e;padding:0 18px;font-size:16px;outline:none}.signup-form input:focus{border-color:#c85c22;box-shadow:0 0 0 2px rgba(200,92,34,.12)}.signup-form button{border:0;background:#c98217;color:#fff;padding:0 24px;text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:800;cursor:pointer;white-space:nowrap}

.site-footer{display:grid;grid-template-columns:1fr auto 1.7fr;align-items:center;gap:24px;min-height:82px;padding:17px 18px 8px;border-top:1px solid rgba(215,149,39,.22);font-size:var(--footer-size);letter-spacing:.045em;color:#efdcc2}
.site-footer a{text-decoration:none}.ig-link{display:inline-flex;align-items:center;gap:10px;justify-self:start}.ig-icon{width:22px;height:22px;border:2px solid #d79527;border-radius:6px;position:relative}.ig-icon:before{content:"";position:absolute;inset:5px;border:2px solid #d79527;border-radius:50%}.ig-icon:after{content:"";position:absolute;width:3px;height:3px;border-radius:50%;background:#d79527;right:3px;top:3px}.footer-mark{width:42px;height:42px;object-fit:contain}.footer-links{justify-self:end;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px 16px}.footer-links .sep{opacity:.45}.copyright{white-space:nowrap}

@media(max-width:980px){
  :root{--page-pad:18px;--section-gap:24px;--hero-title:clamp(38px,4.7vw,46px);--hero-body:16px;--hero-roots:22px;--pillar-label:18px;--pillar-lead:16px;--pillar-body:13.5px;--jamaica-kicker:32px;--jamaica-title:32px;--jamaica-body:14.5px;--signup-copy:17px;--footer-size:12px;--shop-size:18px}
  .header-inner{height:82px}.brand img{width:345px}.page{padding-top:28px}
  .hero-copy{left:6.2%;top:12.2%;width:37%}
  .pillars-grid{left:15.8%;right:12%;top:21%;gap:5.5%}
  .jamaica{min-height:490px}.jamaica-copy{min-height:490px;width:48%;padding:34px 24px 30px 30px}.jamaica-art{width:65%}
  .signup-live{left:60%;top:47%;transform:translate(-50%,-50%);width:42%}.signup-form{min-height:48px}.signup-form button{padding:0 16px;font-size:10px}.signup-form input{font-size:13px}
  .site-footer{grid-template-columns:1fr auto 1.4fr;gap:14px;padding-left:6px;padding-right:6px}
}

@media(max-width:680px){
  :root{--page-pad:10px;--section-gap:6px;--hero-title:38px;--hero-body:15px;--hero-roots:20px;--pillar-label:19px;--pillar-lead:17px;--pillar-body:14px;--jamaica-kicker:29px;--jamaica-title:31px;--jamaica-body:14px;--signup-copy:16px;--footer-size:11.5px;--shop-size:15px}
  body{background-size:1240px auto,700px 700px}
  .header-inner{height:72px}.brand img{width:255px;max-width:72vw}.header-shop{padding-bottom:4px}.page{padding-top:22px}
  .hero{aspect-ratio:auto;min-height:760px;background:#ead4bb;clip-path:polygon(1% 1%,99% 0,100% 98%,97% 100%,2% 99%,0 2%);overflow:hidden}
  .hero>.section-art{position:absolute;left:0;right:0;bottom:-10px;top:auto;height:420px;width:100%;object-fit:cover;object-position:78% top}
  .hero-copy{position:relative;left:auto;top:auto;width:auto;padding:40px 30px 355px;color:var(--ink);z-index:5;background:linear-gradient(#ead4bb 0%,#ead4bb 72%,rgba(234,212,187,.94) 82%,transparent 100%)}
  .hero h1{max-width:330px}.hero-body,.hero-brand{max-width:460px}
  .pillars{aspect-ratio:auto;background:#ead4bb;min-height:930px;clip-path:polygon(1% 1%,99% 0,100% 99%,97% 100%,2% 99%,0 1%);overflow:hidden}
  .pillars>.section-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top}
  .pillars-grid{position:relative;left:auto;right:auto;top:auto;bottom:auto;padding:54px 28px 70px;display:grid;grid-template-columns:1fr;gap:34px;background:rgba(234,212,187,.82)}
  .pillar{max-width:470px;margin:auto}.pillar h2{font-size:var(--pillar-label)}.pillar-lead,.pillar-body{max-width:430px}
  .jamaica{min-height:800px}.jamaica-copy{width:100%;min-height:455px;padding:36px 28px 26px;background:linear-gradient(180deg,rgba(8,7,5,.995) 0%,rgba(8,7,5,.99) 86%,rgba(8,7,5,.2) 100%)}.jamaica-art{top:auto;bottom:-18px;right:0;width:100%;height:420px;object-fit:contain;object-position:center bottom}
  .jamaica-button{margin-top:8px}
  .signup{aspect-ratio:auto;min-height:620px;background:#ead4bb;clip-path:polygon(1% 1%,99% 0,100% 99%,97% 100%,2% 99%,0 1%);overflow:hidden}
  .signup>.section-art{position:absolute;left:0;right:0;top:0;width:100%;height:auto;object-fit:contain;object-position:center top}
  .signup-live{left:50%;top:56%;bottom:auto;transform:translate(-50%,-50%);width:72%;padding:0;background:transparent;box-shadow:none;text-align:center}
  .signup-live p{margin-bottom:14px;font-size:15px;line-height:1.35}.signup-form{min-height:48px;width:100%}.signup-form button{padding:0 13px;font-size:9.5px}
  .site-footer{grid-template-columns:1fr;justify-items:center;text-align:center;gap:14px;min-height:150px;padding:24px 10px}.ig-link,.footer-links{justify-self:center;justify-content:center}.footer-mark{order:-1}.footer-links{gap:8px 12px}.copyright{white-space:normal}
}


/* Narrow-tablet / large-phone layout: keep the editorial composition readable without collapsing into overlays. */
@media(max-width:800px) and (min-width:681px){
  :root{--hero-title:34px;--hero-body:14px;--hero-roots:20px;--pillar-label:16px;--pillar-lead:14px;--pillar-body:12.5px;--jamaica-kicker:26px;--jamaica-title:28px;--jamaica-body:13.5px;--signup-copy:15px}
  .hero{aspect-ratio:auto;min-height:520px;overflow:visible}
  .hero>.section-art{height:100%;object-fit:fill}
  .hero-copy{left:6%;top:11%;width:39%}
  .hero h1{margin-bottom:16px;max-width:260px}.hero-body{line-height:1.42;max-width:270px}.hero-roots{margin-top:14px}.hero-brand{line-height:1.42}
  .pillars{aspect-ratio:auto;min-height:410px;overflow:visible}
  .pillars>.section-art{height:100%;object-fit:fill}
  .pillars-grid{left:15%;right:11%;top:18%;bottom:12%;gap:4.2%}
  .pillar h2{margin-bottom:8px}.pillar h2::after{margin-top:8px}.pillar-lead{line-height:1.25;margin-bottom:9px}.pillar-body{line-height:1.34}
  .jamaica{min-height:610px}.jamaica-copy{min-height:610px;width:51%;padding:34px 22px 28px 26px}.jamaica-art{width:64%;height:104%;top:3%}
  .signup{min-height:255px;aspect-ratio:auto}.signup>.section-art{height:100%;object-fit:fill}.signup-live{left:60%;width:42%;top:47%;transform:translate(-50%,-50%)}.signup-live p{line-height:1.34;margin-bottom:12px}.signup-form{min-height:44px}.signup-form input{font-size:12px}.signup-form button{font-size:9.5px;padding:0 12px}
}


/* V14 ribbon choreography
   These are not dividers. Each piece overlaps a section edge and spills into the dark canvas.
   Ends are cut on a diagonal to read as ribbon, and the CMJ section uses behind/front layers. */
.ribbon-bridge,.jamaica-ribbon{
  position:absolute;
  pointer-events:none;
  filter:drop-shadow(0 7px 7px rgba(0,0,0,.30));
}
.ribbon-bridge{
  z-index:5;
  clip-path:polygon(7% 0,100% 0,93% 100%,0 100%);
}
/* Hero ribbon: emerges from the existing lower-right ribbon and bridges into the gap. */
.ribbon-hero{
  right:4.5%;
  bottom:-18px;
  width:26%;
  transform:rotate(-6deg);
  transform-origin:right center;
}
/* Pillars ribbon: begins inside the lower-right child/ribbon zone and exits toward Jamaica. */
.ribbon-pillars{
  right:3.5%;
  bottom:-17px;
  width:25%;
  transform:rotate(5deg) scaleX(-1);
  transform-origin:right center;
}
/* CMJ wrap: one portion sits under the collage, another crosses the foreground near the book. */
.jamaica-ribbon-back{
  z-index:1;
  right:3%;
  top:34%;
  width:45%;
  transform:rotate(10deg);
  opacity:.98;
  clip-path:polygon(5% 0,100% 0,95% 100%,0 100%);
}
.jamaica-ribbon-front{
  z-index:4;
  right:11%;
  top:50%;
  width:24%;
  transform:rotate(14deg);
  clip-path:polygon(7% 0,100% 0,93% 100%,0 100%);
}
.ribbon-jamaica-exit{
  right:4%;
  bottom:-16px;
  width:24%;
  transform:rotate(-7deg);
}
/* Signup gets one quiet exit flourish that begins inside the artwork instead of floating below it. */
.ribbon-signup{
  left:3%;
  bottom:-11px;
  width:18%;
  transform:rotate(-7deg);
  opacity:.96;
}
@media(max-width:980px){
  .ribbon-hero{width:25%;bottom:-15px}
  .ribbon-pillars{width:24%;bottom:-14px}
  .jamaica-ribbon-back{right:2%;top:35%;width:44%}
  .jamaica-ribbon-front{right:10%;top:51%;width:24%}
  .ribbon-jamaica-exit{width:23%;bottom:-14px}
  .ribbon-signup{width:18%;bottom:-10px}
}
@media(max-width:680px){
  /* Mobile keeps the weave, but reduces the number/size of crossings. */
  .ribbon-hero{right:3%;bottom:-8px;width:27%;transform:rotate(-5deg)}
  .ribbon-pillars{right:3%;bottom:-8px;width:26%;transform:rotate(4deg) scaleX(-1)}
  .jamaica-ribbon-back{right:0;top:57%;width:48%;transform:rotate(9deg)}
  .jamaica-ribbon-front{right:7%;top:63%;width:28%;transform:rotate(13deg)}
  .ribbon-jamaica-exit{right:4%;bottom:-7px;width:24%}
  .ribbon-signup{left:3%;bottom:-6px;width:20%}
}

/* V16 targeted corrections */
.jamaica-ribbon,.ribbon-jamaica-exit,.signup>.ribbon-bridge{display:none!important;}


/* V17 targeted cleanup: no freestanding ribbon fragments; center signup in the open paper field. */
.ribbon-bridge,.jamaica-ribbon,.ribbon-jamaica-exit{display:none!important;}
.signup-live{
  left:55%;
  top:49%;
  transform:translate(-50%,-50%);
  width:38%;
  max-width:470px;
  text-align:center;
}
.signup-live p{
  margin:0 auto 14px;
  max-width:430px;
}
.signup-form{
  width:100%;
  max-width:440px;
  margin:0 auto;
}
@media(max-width:980px){
  .signup-live{left:55%;top:49%;width:40%;}
}
@media(max-width:800px) and (min-width:681px){
  .signup-live{left:55%;top:49%;width:40%;transform:translate(-50%,-50%);}
}
@media(max-width:680px){
  .signup-live{
    left:54%;
    top:49%;
    bottom:auto;
    transform:translate(-50%,-50%);
    width:38%;
    padding:0;
    background:transparent;
    box-shadow:none;
  }
  .signup-live p{font-size:12px;line-height:1.3;margin-bottom:9px;}
  .signup-form{min-height:34px;max-width:100%;}
  .signup-form input{font-size:10px;padding:0 8px;}
  .signup-form button{font-size:7.5px;padding:0 8px;}
}

/* V18 targeted legibility + signup placement corrections */
/* Keep the pillar copy readable where decorative imagery crosses behind it,
   without introducing visible rectangular cards. */
.pillar-body{
  position:relative;
  z-index:6;
  padding:4px 8px 6px;
  background:rgba(241,223,201,.72);
  box-shadow:0 0 16px 10px rgba(241,223,201,.68);
  border-radius:10px;
}
.pillar-lead{
  position:relative;
  z-index:6;
  text-shadow:0 1px 0 rgba(255,245,231,.85);
}

/* Signup lives entirely in the open center paper field between envelope and pottery. */
.signup-live{
  left:62%;
  top:32%;
  width:34%;
  max-width:410px;
  transform:translate(-50%,-50%);
  text-align:center;
}
.signup-live p{
  font-size:18px;
  line-height:1.34;
  margin:0 auto 12px;
  max-width:390px;
}
.signup-form{
  width:100%;
  max-width:390px;
  min-height:46px;
  margin:0 auto;
}
.signup-form input{font-size:13px;padding:0 12px;}
.signup-form button{font-size:10px;padding:0 14px;}

@media(max-width:980px){
  .signup-live{left:61%;top:33%;width:35%;max-width:360px;}
  .signup-live p{font-size:16px;line-height:1.32;margin-bottom:10px;}
  .signup-form{max-width:350px;min-height:42px;}
}

@media(max-width:680px){
  /* On the narrow layout the artwork still provides a horizontal open field;
     keep the live content in that field rather than creating a detached box. */
  .signup{min-height:255px;aspect-ratio:2172/724;background:transparent;clip-path:none;overflow:visible;}
  .signup>.section-art{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;}
  .signup-live{
    left:62%;
    top:34%;
    bottom:auto;
    width:34%;
    max-width:none;
    transform:translate(-50%,-50%);
    padding:0;
    background:transparent;
    box-shadow:none;
  }
  .signup-live p{font-size:10.5px;line-height:1.28;margin:0 auto 7px;max-width:100%;}
  .signup-form{width:100%;max-width:none;min-height:29px;}
  .signup-form input{font-size:8.5px;padding:0 6px;}
  .signup-form button{font-size:6.8px;padding:0 7px;letter-spacing:.055em;}
  .pillar-body{background:rgba(241,223,201,.82);box-shadow:0 0 14px 9px rgba(241,223,201,.78);}
}

/* V20 MOBILE RECOMPOSITION
   Desktop/tablet remain V19. Phones get a deliberate vertical editorial layout
   instead of shrinking/cropping the desktop composition. */
@media(max-width:680px){
  :root{
    --page-pad:0px;
    --section-gap:12px;
    --hero-title:clamp(39px,11.5vw,48px);
    --hero-body:16px;
    --hero-roots:22px;
    --pillar-label:20px;
    --pillar-lead:18px;
    --pillar-body:15px;
    --jamaica-kicker:15px;
    --jamaica-title:clamp(31px,9vw,38px);
    --jamaica-body:15px;
    --signup-copy:17px;
    --footer-size:12px;
    --shop-size:15px;
  }

  body{background-size:1180px auto,700px 700px;background-attachment:scroll,scroll;}
  .site-header{position:sticky;top:0;}
  .header-inner{width:100%;height:82px;padding:0 16px;gap:12px;}
  .brand img{width:min(265px,72vw);max-width:none;}
  .header-shop{font-size:var(--shop-size);letter-spacing:.08em;}
  .page{width:100%;padding:14px 8px 18px;}

  /* HERO: copy first, cultural collage as a contained lower panel. */
  .hero{
    min-height:0;
    aspect-ratio:auto;
    display:flex;
    flex-direction:column;
    background:var(--paper);
    clip-path:polygon(1% 1%,99% 0,100% 98.5%,97% 100%,2% 99%,0 2%);
    overflow:hidden;
  }
  .hero-copy{
    position:relative;
    order:1;
    left:auto;top:auto;width:100%;
    padding:38px 28px 28px;
    background:var(--paper);
    z-index:5;
  }
  .hero h1{font-size:var(--hero-title);line-height:.98;margin:0 0 26px;max-width:330px;}
  .hero h1 em{font-size:.72em;line-height:1.08;margin-top:8px;}
  .hero-body{font-size:var(--hero-body);line-height:1.55;max-width:none;}
  .hero-body p{margin-bottom:7px;}
  .hero-roots{font-size:var(--hero-roots);margin:24px 0 12px;padding-top:15px;}
  .hero-brand{font-size:var(--hero-body);line-height:1.52;max-width:none;}
  .hero>.section-art{
    position:relative;
    order:2;
    inset:auto;
    width:100%;
    height:285px;
    object-fit:cover;
    object-position:72% 54%;
    display:block;
  }

  /* PILLARS: three complete readable ideas, then artwork as a quiet visual base. */
  .pillars{
    min-height:0;
    aspect-ratio:auto;
    display:flex;
    flex-direction:column;
    background:var(--paper);
    clip-path:polygon(1% 1%,99% 0,100% 99%,97% 100%,2% 99%,0 1%);
    overflow:hidden;
  }
  .pillars-grid{
    position:relative;
    order:1;
    left:auto;right:auto;top:auto;bottom:auto;
    display:grid;
    grid-template-columns:1fr;
    gap:34px;
    padding:48px 28px 34px;
    background:linear-gradient(180deg,rgba(241,223,201,.98) 0%,rgba(241,223,201,.95) 100%);
    z-index:5;
  }
  .pillar{max-width:520px;margin:0 auto;text-align:center;}
  .pillar h2{font-size:var(--pillar-label);margin-bottom:12px;}
  .pillar-lead{font-size:var(--pillar-lead);line-height:1.35;margin:0 auto 12px;max-width:470px;}
  .pillar-body{
    font-size:var(--pillar-body);line-height:1.48;max-width:470px;
    padding:0;background:none;box-shadow:none;border-radius:0;
  }
  .pillars>.section-art{
    position:relative;
    order:2;
    inset:auto;
    width:100%;
    height:255px;
    object-fit:cover;
    object-position:50% 82%;
    opacity:.96;
  }

  /* JAMAICA: uninterrupted reading block followed by the product collage. */
  .jamaica{
    min-height:0;
    display:flex;
    flex-direction:column;
    overflow:hidden;
    background:rgba(7,6,5,.98);
    margin-bottom:var(--section-gap);
  }
  .jamaica-copy{
    position:relative;
    order:1;
    width:100%;min-height:0;
    padding:38px 28px 30px;
    background:rgba(7,6,5,.98);
  }
  .jamaica-kicker{font-size:var(--jamaica-kicker);margin-bottom:14px;letter-spacing:.035em;}
  .jamaica h2{font-size:var(--jamaica-title);line-height:1.06;margin-bottom:20px;max-width:480px;}
  .jamaica-copy p{font-size:var(--jamaica-body);line-height:1.58;margin-bottom:17px;max-width:none;}
  .jamaica-button{margin-top:3px;padding:15px 17px;font-size:11px;}
  .jamaica-art{
    position:relative;
    order:2;
    right:auto;top:auto;bottom:auto;
    width:100%;height:360px;
    object-fit:cover;
    object-position:66% 58%;
    z-index:2;
  }

  /* SIGNUP: preserve the artwork as a banner and give the form its own paper field. */
  .signup{
    min-height:0;
    aspect-ratio:auto;
    display:flex;
    flex-direction:column;
    background:transparent;
    clip-path:none;
    overflow:visible;
    margin-top:0;
  }
  .signup>.section-art{
    position:relative;
    order:1;
    inset:auto;
    width:100%;
    height:auto;
    aspect-ratio:2172/724;
    object-fit:contain;
    display:block;
  }
  .signup-live{
    position:relative;
    order:2;
    left:auto;top:auto;bottom:auto;
    width:calc(100% - 28px);
    max-width:none;
    margin:-4px auto 0;
    padding:26px 22px 28px;
    transform:none;
    color:var(--ink);
    background:#ead4bb;
    text-align:center;
    clip-path:polygon(1% 0,99% 1%,100% 97%,97% 100%,2% 99%,0 2%);
  }
  .signup-live p{font-size:var(--signup-copy);line-height:1.38;margin:0 auto 16px;max-width:420px;}
  .signup-form{width:100%;max-width:430px;min-height:48px;margin:0 auto;display:flex;}
  .signup-form input{font-size:14px;padding:0 12px;}
  .signup-form button{font-size:9.5px;padding:0 12px;letter-spacing:.06em;}

  .site-footer{
    grid-template-columns:1fr;
    justify-items:center;
    text-align:center;
    gap:13px;
    min-height:0;
    padding:25px 14px 28px;
  }
  .ig-link,.footer-links{justify-self:center;justify-content:center;}
  .footer-mark{order:-1;width:38px;height:38px;}
  .footer-links{gap:8px 10px;}
  .copyright{white-space:normal;}
}

/* V21 MOBILE RESTORATION
   Preserve the designed compositions on phones instead of separating text from artwork. */
@media(max-width:680px){
  /* Pillars: each original panel becomes its own full-width mobile panel.
     Same source artwork, cropped to the corresponding third. */
  .pillars{
    display:block;
    min-height:0;
    background:transparent;
    clip-path:none;
    overflow:visible;
  }
  .pillars>.section-art{display:none;}
  .pillars-grid{
    position:relative;
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
    padding:0;
    background:transparent;
  }
  .pillar{
    position:relative;
    width:100%;
    min-height:330px;
    max-width:none;
    margin:0;
    padding:54px 42px 50px;
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
    text-align:center;
    color:var(--ink);
    overflow:hidden;
    background-image:url('assets/pillars-section.png');
    background-repeat:no-repeat;
    background-size:300% 100%;
    filter:drop-shadow(0 14px 24px rgba(0,0,0,.20));
  }
  .pillar:nth-child(1){background-position:0% 50%;clip-path:polygon(1% 1%,99% 0,100% 98%,97% 100%,2% 99%,0 2%);}
  .pillar:nth-child(2){background-position:50% 50%;clip-path:polygon(1% 0,99% 1%,100% 99%,97% 100%,2% 99%,0 1%);}
  .pillar:nth-child(3){background-position:100% 50%;clip-path:polygon(1% 1%,99% 0,100% 98%,97% 100%,2% 99%,0 2%);}
  .pillar::before{
    content:"";
    position:absolute;
    inset:22px 24px 26px;
    background:rgba(241,223,201,.74);
    box-shadow:0 0 24px 18px rgba(241,223,201,.60);
    border-radius:28px;
    z-index:0;
  }
  .pillar>*{position:relative;z-index:2;}
  .pillar h2{font-size:22px;margin:0 0 15px;}
  .pillar h2::after{margin-top:10px;}
  .pillar-lead{font-size:18px;line-height:1.32;margin:0 auto 14px;max-width:330px;text-shadow:none;}
  .pillar-body{font-size:15px;line-height:1.48;max-width:340px;padding:0;background:none;box-shadow:none;}

  /* Signup: remain one continuous torn-paper composition on mobile.
     Artwork stays behind the live copy and form instead of becoming a separate banner/card. */
  .signup{
    position:relative;
    display:block;
    width:100%;
    height:190px;
    min-height:190px;
    aspect-ratio:auto;
    margin:0 0 var(--section-gap);
    background:transparent;
    clip-path:none;
    overflow:visible;
  }
  .signup>.section-art{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:fill;
    display:block;
  }
  .signup-live{
    position:absolute;
    z-index:4;
    left:61%;
    top:47%;
    width:38%;
    max-width:none;
    margin:0;
    padding:0;
    transform:translate(-50%,-50%);
    color:var(--ink);
    background:transparent;
    clip-path:none;
    text-align:center;
  }
  .signup-live p{
    font-size:10.5px;
    line-height:1.24;
    margin:0 auto 7px;
    max-width:100%;
  }
  .signup-live .cmj-line{margin-top:2px;}
  .signup-form{
    width:100%;
    max-width:none;
    min-height:0;
    display:grid;
    grid-template-columns:1fr;
    gap:4px;
    margin:0;
  }
  .signup-form input,
  .signup-form button{height:27px;min-height:27px;}
  .signup-form input{font-size:9px;padding:0 7px;}
  .signup-form button{font-size:7.5px;padding:0 5px;letter-spacing:.045em;}
}

@media(max-width:430px){
  .pillar{min-height:315px;padding:48px 34px 44px;}
  .pillar::before{inset:20px 18px 24px;}
  .pillar h2{font-size:20px;}
  .pillar-lead{font-size:17px;}
  .pillar-body{font-size:14.5px;}
  .signup{height:178px;min-height:178px;}
  .signup-live{left:61.5%;width:37%;top:47%;}
  .signup-live p{font-size:9.5px;margin-bottom:6px;}
  .signup-form input,.signup-form button{height:25px;min-height:25px;}
  .signup-form input{font-size:8.5px;}
  .signup-form button{font-size:7px;}
}

/* V22 RESPONSIVE CORRECTIONS
   1) Between phone and full desktop sizes, live type and spacing scale with the artwork
      instead of reflowing at near-desktop sizes and visually squashing the composition.
   2) Phone signup gets a purpose-built tall paper composition so the form stays usable
      without shrinking to miniature size. */

@media (min-width:681px) and (max-width:1180px){
  :root{
    --hero-title:clamp(31px,4.24vw,50px);
    --hero-body:clamp(12px,1.525vw,18px);
    --hero-roots:clamp(16px,2.12vw,25px);
    --pillar-label:clamp(14px,1.78vw,21px);
    --pillar-lead:clamp(12px,1.525vw,18px);
    --pillar-body:clamp(10.5px,1.31vw,15.5px);
    --jamaica-kicker:clamp(13px,1.525vw,18px);
    --jamaica-title:clamp(23px,2.88vw,34px);
    --jamaica-body:clamp(11.5px,1.44vw,17px);
    --signup-copy:clamp(14px,1.86vw,22px);
    --footer-size:clamp(10px,1.19vw,14px);
    --shop-size:clamp(15px,1.86vw,22px);
  }
  .header-inner{height:clamp(64px,7.8vw,92px)}
  .brand img{width:clamp(270px,33.5vw,395px);max-width:68vw}
  .page{padding-top:clamp(18px,2.37vw,28px)}

  .hero-copy{left:6.2%;top:12.7%;width:35.5%}
  .hero h1{margin-bottom:clamp(14px,2.03vw,24px)}
  .hero-roots{margin-top:clamp(12px,1.7vw,20px);margin-bottom:clamp(8px,1.02vw,12px);padding-top:clamp(8px,1.1vw,13px)}

  .pillars-grid{left:16.3%;right:12.8%;top:21.2%;bottom:23%;gap:6.4%}
  .pillar h2{margin-bottom:clamp(7px,1.02vw,12px)}
  .pillar-lead{margin-bottom:clamp(8px,1.1vw,13px)}
  .pillar-body{padding:clamp(2px,.34vw,4px) clamp(5px,.68vw,8px) clamp(3px,.51vw,6px)}

  .jamaica{min-height:clamp(365px,45.34vw,535px)}
  .jamaica-copy{min-height:clamp(365px,45.34vw,535px);width:46%;padding:clamp(27px,3.39vw,40px) clamp(23px,2.88vw,34px) clamp(24px,3.05vw,36px) clamp(29px,3.56vw,42px)}
  .jamaica-art{width:67%;height:108%;top:1%}
  .jamaica-button{font-size:clamp(9px,1.1vw,13px);padding:clamp(10px,1.27vw,15px) clamp(13px,1.7vw,20px)}

  .signup-live{left:62%;top:32%;width:34%;max-width:410px}
  .signup-live p{font-size:var(--signup-copy);line-height:1.34;margin-bottom:clamp(8px,1.02vw,12px)}
  .signup-form{min-height:clamp(36px,3.9vw,46px)}
  .signup-form input{font-size:clamp(10px,1.1vw,13px);padding:0 clamp(8px,1.02vw,12px)}
  .signup-form button{font-size:clamp(8px,.85vw,10px);padding:0 clamp(9px,1.19vw,14px)}
}

@media(max-width:680px){
  /* Keep the signup visually integrated, but make the paper composition tall enough
     for actual readable copy and controls instead of miniaturizing the desktop strip. */
  .signup{
    height:310px;
    min-height:310px;
    overflow:hidden;
    margin-top:4px;
    filter:drop-shadow(0 16px 28px rgba(0,0,0,.22));
  }
  .signup>.section-art{
    content:url('assets/signup-mobile.png');
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:fill;
  }
  .signup-live{
    left:50%;
    top:64%;
    width:72%;
    max-width:430px;
    transform:translate(-50%,-50%);
  }
  .signup-live p{
    font-size:15px;
    line-height:1.34;
    margin:0 auto 14px;
    max-width:330px;
  }
  .signup-live .cmj-line{margin-top:3px}
  .signup-form{
    width:100%;
    max-width:360px;
    min-height:44px;
    display:flex;
    gap:0;
    margin:0 auto;
  }
  .signup-form input,
  .signup-form button{height:44px;min-height:44px}
  .signup-form input{font-size:13px;padding:0 12px}
  .signup-form button{font-size:9px;padding:0 12px;letter-spacing:.055em}
}

@media(max-width:430px){
  .signup{height:330px;min-height:330px}
  .signup-live{top:65%;width:78%}
  .signup-live p{font-size:14px;max-width:300px}
  .signup-form{max-width:320px;min-height:42px}
  .signup-form input,.signup-form button{height:42px;min-height:42px}
  .signup-form input{font-size:12px;padding:0 10px}
  .signup-form button{font-size:8.5px;padding:0 10px}
}

/* Landscape phones should keep a coherent scaled composition rather than switching
   into the near-desktop rules simply because the device was rotated. */
@media (orientation:landscape) and (max-height:560px) and (max-width:980px){
  .page{width:min(760px,calc(100% - 20px));margin:0 auto;padding-top:12px}
  .header-inner{height:66px;width:min(760px,calc(100% - 20px))}
  .brand img{width:270px;max-width:62vw}
  .hero,.pillars,.signup{max-width:760px;margin-left:auto;margin-right:auto}
  .jamaica{max-width:760px;margin-left:auto;margin-right:auto}
}

/* V23: Kit subscription integration. Preserve CMJ visual treatment. */
.signup-form{position:relative;}
.signup-fields{display:flex;align-items:stretch;width:100%;min-height:inherit;}
.signup-form .formkit-alert{display:none;list-style:none;margin:8px 0 0;padding:7px 10px;border-radius:3px;font-size:12px;line-height:1.3;text-align:center;}
.signup-form .formkit-alert:not(:empty){display:block;position:absolute;top:calc(100% + 6px);left:0;right:0;background:rgba(255,249,239,.97);border:1px solid rgba(126,49,26,.28);color:#7e311a;z-index:5;}
.signup-form .formkit-alert-success{display:block;margin-top:8px;background:rgba(255,249,239,.97);border:1px solid rgba(48,100,58,.28);color:#2f643a;}
.signup-form .formkit-input{margin:0;}
.signup-form .formkit-submit{margin:0;}
.signup-form .formkit-submit>span{display:flex;align-items:center;justify-content:center;height:100%;padding:0;}
.signup-form .formkit-spinner{display:none;}
.signup-form[data-active] .formkit-submit{opacity:.75;cursor:wait;}

/* V24 launch-readiness cleanup: accessibility mechanics only; no layout redesign. */
html{scroll-padding-top:108px}
.skip-link{
  position:fixed;left:16px;top:12px;z-index:2000;
  transform:translateY(-160%);
  background:#f6eadc;color:#17100c;border:2px solid #d79527;
  padding:10px 14px;border-radius:4px;font-weight:700;text-decoration:none;
  transition:transform .15s ease;
}
.skip-link:focus{transform:translateY(0)}

/* Strong, consistent keyboard focus without changing mouse/touch appearance. */
a:focus-visible,button:focus-visible,input:focus-visible,[tabindex]:focus-visible{
  outline:3px solid #efb455;
  outline-offset:4px;
}
#main-content:focus{outline:none}

/* Preserve the established palette while lifting the orange text above the
   WCAG large-text contrast threshold on the cream paper. */
:root{--orange:#c84d18}

/* Comfortable interactive target sizes. */
.header-shop,.jamaica-button,.ig-link,.footer-links a{min-height:44px}
.header-shop,.jamaica-button,.ig-link,.footer-links a{display:inline-flex;align-items:center}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .skip-link{transition:none}
}
