/* ════════════════════════════════════════════════════════════════
   SQUARESPACE 7.1 PLATFORM SIMULATION — NOT A DELIVERABLE
   This file stands in for what Squarespace itself renders:
   base resets, section/content-wrapper chrome, and the Fluid Engine
   block ARRANGEMENT that, on the real site, comes from dragging
   blocks in the editor (not from CSS we ship).
   ════════════════════════════════════════════════════════════════ */

* { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: clip; }
body { margin: 0; font-size: 17px; background: #fbf8f2; -webkit-font-smoothing: antialiased; overflow-x: clip; }
img, svg { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
h1,h2,h3,h4,p,ul,figure,dl { margin: 0 0 14px; }
ul { padding-left: 1.2em; }

/* --- Squarespace section chrome --- */
.page-section { position: relative; padding: clamp(72px, 9vw, 140px) 0; }
.page-section .content-wrapper { max-width: 1280px; margin: 0 auto; padding: 0 clamp(20px, 4vw, 56px); }
.page-section--compact { padding: clamp(28px, 4vw, 48px) 0; }
.sqs-block { position: relative; }
.sqs-block-content, .sqs-html-content { position: relative; }

/* --- Announcement bar --- */
.sqs-announcement-bar { padding: 10px clamp(20px, 4vw, 56px); }
.sqs-announcement-bar-text { display: block; }

/* --- Header chrome --- */
#header .header-inner {
  max-width: 1280px; margin: 0 auto; padding: 14px clamp(20px, 4vw, 56px);
  display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 24px;
}
.header-nav-list { display: flex; gap: 28px; justify-content: center; }
@media (max-width: 980px) { .header-nav-list { display: none; } }
@media (max-width: 540px) { #header .header-actions { display: none; } }

/* --- Fluid Engine layout shims (editor-arranged on the real site) --- */
.fe-row { display: grid; gap: 28px; align-items: start; }
.fe-row--end { align-items: end; }
.fe-row--center { align-items: center; }
.fe-cols-2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
.fe-cols-3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.fe-cols-4 { grid-template-columns: repeat(4, minmax(0,1fr)); gap: 16px; }
.fe-cols-6 { grid-template-columns: repeat(6, minmax(0,1fr)); gap: 14px; }
.fe-hero { grid-template-columns: minmax(0,1.1fr) minmax(0,.9fr); gap: clamp(28px, 5vw, 80px); }
.fe-split { grid-template-columns: minmax(0,1.2fr) minmax(0,1fr); gap: 36px; }
.fe-spec { grid-template-columns: minmax(0,1.05fr) minmax(0,1fr); gap: 0; align-items: stretch; }
.fe-row > * { min-width: 0; }
.fe-heading-row { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; flex-wrap: wrap; margin-bottom: 48px; }
.fe-actions { display: flex; gap: 14px; flex-wrap: wrap; }
.fe-stack-0 > .sqs-block { margin-bottom: 0; }

/* image overlap blocks (Fluid Engine supports overlapping natively) */
.fe-overlap { position: relative; }
.fe-overlap .fe-pos-tr { position: absolute; top: 18px; right: 18px; z-index: 2; }
.fe-overlap .fe-pos-bl { position: absolute; left: 18px; bottom: 18px; z-index: 2; }

@media (max-width: 980px) {
  .fe-hero, .fe-cols-3 { grid-template-columns: 1fr; }
  .fe-cols-3 { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .fe-cols-4 { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .fe-cols-6 { grid-template-columns: repeat(3, minmax(0,1fr)); }
}
@media (max-width: 880px) { .fe-split, .fe-spec { grid-template-columns: 1fr; } }
@media (max-width: 640px) { .fe-cols-2, .fe-cols-3 { grid-template-columns: 1fr; } }
@media (max-width: 540px) { .fe-cols-4 { grid-template-columns: 1fr; } .fe-cols-6 { grid-template-columns: repeat(2, minmax(0,1fr)); } }

/* --- Form block chrome --- */
.form-wrapper .field-list { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.form-wrapper .field-list .form-item.full { grid-column: span 2; }
@media (max-width: 540px) {
  .form-wrapper .field-list { grid-template-columns: 1fr; }
  .form-wrapper .field-list .form-item.full { grid-column: span 1; }
}
.form-wrapper textarea { min-height: 120px; resize: vertical; width: 100%; }
.form-button-wrapper { grid-column: span 2; }
@media (max-width: 540px) { .form-button-wrapper { grid-column: span 1; } }

/* --- Footer chrome --- */
#footer-sections { padding: 70px 0 30px; }
#footer-sections .content-wrapper { max-width: 1280px; margin: 0 auto; padding: 0 clamp(20px, 4vw, 56px); }
.fe-foot { display: grid; grid-template-columns: 1.2fr .8fr .8fr .8fr; gap: 36px; }
@media (max-width: 880px) { .fe-foot { grid-template-columns: 1fr 1fr; } }
@media (max-width: 540px) { .fe-foot { grid-template-columns: 1fr; } }
.ptc-legal { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; }

/* --- Accordion block chrome (functional stand-in for SQS accordion) --- */
.sqs-block-accordion details { cursor: pointer; }
.sqs-block-accordion summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.sqs-block-accordion summary::-webkit-details-marker { display: none; }
.sqs-block-accordion summary::after { content: "+"; font-size: 28px; font-weight: 300; color: #9a7a2c; transition: transform .2s ease; }
.sqs-block-accordion details[open] summary::after { transform: rotate(45deg); }
.sqs-block-accordion .accordion-item__description { padding-top: 12px; }
