/* La Casa Noma - shared stylesheet (identical in the Astro and WordPress builds) */

@font-face { font-family: 'Marcellus'; src: url('../fonts/marcellus-latin-400-normal.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'EB Garamond'; src: url('../fonts/eb-garamond-latin-400-normal.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'EB Garamond'; src: url('../fonts/eb-garamond-latin-400-italic.woff2') format('woff2'); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: 'Jost'; src: url('../fonts/jost-latin-400-normal.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Jost'; src: url('../fonts/jost-latin-500-normal.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; }

:root {
  --plaster: #ede0cf;
  --sand: #e0cdb6;
  --terra: #c1785f;
  --terra-ink: #96492d;
  --umber: #6e4b37;
  --stone: #b39a85;
  --clay: #7a3a24;
  --clay-deep: #5e2b1a;

  --font-display: 'Marcellus', 'Trajan Pro', 'Optima', serif;
  --font-text: 'EB Garamond', 'Garamond', 'Georgia', serif;
  --font-label: 'Jost', 'Futura', 'Avenir Next', sans-serif;

  --text-2xs: 12px;
  --text-xs: 13px;
  --text-sm: 14px;
  --text-base: 17px;
  --text-body: clamp(18px, 1.25vw, 20px);
  --text-md: 20px;
  --text-lg: 24px;
  --text-xl: clamp(20px, 1.7vw, 26px);
  --text-2xl: clamp(24px, 2.2vw, 32px);
  --text-3xl: clamp(28px, 2.6vw, 40px);
  --text-4xl: clamp(40px, 4.8vw, 76px);
  --text-5xl: clamp(48px, 6.8vw, 100px);
  --track-display: 0.03em;
  --track-caps: 0.1em;
  --track-label: 0.16em;
  --track-wide: 0.2em;
  --leading-tight: 1;
  --leading-snug: 1.25;
  --leading-normal: 1.45;
  --leading-body: 1.55;

  --header-h: 77px;
  --gutter: clamp(20px, 4.2vw, 60px);
  --max: 1440px;
  --col: calc((min(100vw, var(--max)) - 2 * var(--gutter)) / 12);
  --rule: 1px solid var(--terra);
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;
  --space-m: clamp(24px, 3vw, 40px);
  --space-l: clamp(48px, 7vw, 112px);
  --space-xl: clamp(72px, 11vw, 176px);
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' seed='1' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.37 0 0 0 0 0.17 0 0 0 0 0.10 0 0 0 0.55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
  --grain-clay-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='3' seed='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.20 0 0 0 0 0.08 0 0 0 0 0.04 0 0 0 0.7 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
  --grain-clay-light: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' seed='7' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.87 0 0 0 0 0.83 0 0 0 0 0.76 0 0 0 0.11 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scrollbar-color: var(--terra) var(--plaster); }
body {
  margin: 0;
  background: var(--plaster);
  color: var(--clay);
  font-family: var(--font-text);
  font-size: var(--text-body);
  line-height: var(--leading-body);
  font-variant-numeric: oldstyle-nums proportional-nums;
  text-rendering: optimizeLegibility;
}
::selection { background: var(--terra); color: var(--plaster); }
img, svg { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 0.22em; text-decoration-color: var(--terra); }
a:hover { color: var(--terra-ink); }
:focus-visible { outline: 2px solid var(--terra-ink); outline-offset: 3px; }
h1, h2, h3 { font-family: var(--font-display); font-weight: 400; line-height: var(--leading-tight); margin: 0; text-wrap: balance; letter-spacing: var(--track-display); }
p { margin: 0; text-wrap: pretty; }
.lcn-skip { position: absolute; left: var(--space-4); top: -100px; z-index: 50; padding: var(--space-3) var(--space-5); background: var(--clay); color: var(--plaster); font-family: var(--font-label); font-size: var(--text-sm); letter-spacing: var(--track-caps); text-transform: uppercase; }
.lcn-skip:focus { top: var(--space-4); color: var(--plaster); }
.lcn-visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Ground: lime plaster with fine grain and soft palm shadow, like sun on a wall */
.lcn-page, .wp-site-blocks { position: relative; isolation: isolate; overflow-x: clip; }
.lcn-page::before, .wp-site-blocks::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: url('plaster-shadow.svg') center / cover no-repeat;
  opacity: 0.085;
}
.lcn-page::after, .wp-site-blocks::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-image: var(--grain);
  opacity: 0.22;
  mix-blend-mode: multiply;
}
.lcn-wrap { width: min(100%, var(--max)); margin-inline: auto; padding-inline: var(--gutter); }

/* Labels and voice */
.lcn-label { font-family: var(--font-label); font-size: var(--text-xs); font-weight: 500; letter-spacing: var(--track-wide); text-transform: uppercase; line-height: var(--leading-normal); }
.lcn-caption { font-family: var(--font-text); font-size: var(--text-base); line-height: var(--leading-normal); letter-spacing: 0; text-transform: none; color: var(--umber); }
.lcn-voice { font-style: italic; font-size: var(--text-2xl); line-height: var(--leading-snug); }

/* Buttons */
.lcn-button {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--space-3);
  min-height: 56px; padding: 0 var(--space-8);
  border: 1px solid var(--terra-ink); border-radius: 0;
  background: var(--terra-ink); color: var(--plaster);
  font-family: var(--font-label); font-size: var(--text-sm); font-weight: 500; letter-spacing: var(--track-wide); text-transform: uppercase;
  text-decoration: none; cursor: pointer;
  background-image: linear-gradient(var(--fill, var(--clay)), var(--fill, var(--clay)));
  background-repeat: no-repeat; background-position: left; background-size: 0% 100%;
  transition: background-size 520ms var(--ease-out), border-color 520ms var(--ease-out), color 240ms var(--ease-out), translate 160ms var(--ease-out);
}
.lcn-button:hover { background-size: 100% 100%; border-color: var(--clay); color: var(--plaster); }
.lcn-button:active { translate: 0 1px; }
.lcn-button[disabled] { opacity: 0.55; cursor: progress; }
.lcn-button--line { background-color: transparent; color: var(--clay); border-color: var(--terra); }
.lcn-button--line:hover { color: var(--plaster); }
.lcn-button svg { width: 18px; height: 18px; }
.lcn-link { font-family: var(--font-label); font-size: var(--text-sm); font-weight: 500; letter-spacing: var(--track-wide); text-transform: uppercase; text-decoration: none; padding-bottom: var(--space-1); background: linear-gradient(var(--terra), var(--terra)) left bottom / 100% 1px no-repeat; }
.lcn-link:hover { animation: lcn-redraw 720ms var(--ease-out); }
@keyframes lcn-redraw {
  0% { background-position: right bottom; background-size: 100% 1px; }
  40% { background-position: right bottom; background-size: 0% 1px; }
  41% { background-position: left bottom; background-size: 0% 1px; }
  100% { background-position: left bottom; background-size: 100% 1px; }
}

/* Header */
.lcn-header { position: sticky; top: 0; z-index: 20; background: var(--plaster); border-bottom: var(--rule); }
.lcn-header__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--space-m); min-height: calc(var(--header-h) - 1px); }
.lcn-brand { display: inline-flex; align-items: center; gap: var(--space-2); text-decoration: none; color: var(--clay); }
.lcn-brand svg { flex-shrink: 0; width: 38px; color: var(--terra); stroke-width: 1.7; }
.lcn-brand__name { font-family: var(--font-display); font-size: var(--text-md); letter-spacing: var(--track-label); text-transform: uppercase; white-space: nowrap; }
.lcn-nav { display: flex; align-items: center; gap: clamp(20px, 2.6vw, 40px); }
.lcn-nav__list { display: flex; gap: clamp(20px, 2.6vw, 40px); list-style: none; margin: 0; padding: 0; }
.lcn-nav a { font-family: var(--font-label); font-size: var(--text-xs); font-weight: 500; letter-spacing: var(--track-wide); text-transform: uppercase; text-decoration: none; padding: var(--space-2) 0; border-bottom: 1px solid transparent; }
.lcn-nav a[aria-current='page'] { border-bottom-color: var(--terra); }
.lcn-nav .lcn-header__cta { min-height: 44px; padding: 0 var(--space-6); border: 1px solid var(--terra-ink); font-size: var(--text-xs); color: var(--plaster); }
.lcn-nav .lcn-header__cta:hover { border-color: var(--clay); color: var(--plaster); }
.lcn-nav__end { display: flex; align-items: center; gap: clamp(20px, 2.6vw, 40px); }
.lcn-langs { display: flex; gap: var(--space-1); list-style: none; margin: 0; padding: 0 0 0 clamp(16px, 2vw, 32px); border-left: var(--rule); }
.lcn-langs a { padding: var(--space-2) var(--space-2); color: var(--umber); }
.lcn-langs a[aria-current='true'] { color: var(--clay); border-bottom-color: var(--terra); }
.lcn-menu-button { display: none; }

@media (max-width: 380px) {
  .lcn-header__inner { gap: var(--space-3); }
  .lcn-brand { gap: var(--space-2); }
  .lcn-brand svg { width: 30px; }
  .lcn-brand__name { font-size: var(--text-base); letter-spacing: var(--track-caps); }
  .lcn-button { padding-inline: var(--space-4); letter-spacing: var(--track-caps); }
}

@media (min-width: 1100px) {
  .lcn-header__inner { position: relative; }
  .lcn-brand { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); flex-direction: column; gap: 2px; }
  .lcn-brand svg { width: 44px; }
  .lcn-nav { flex: 1; justify-content: space-between; }
}

@media (max-width: 960px) {
  .lcn-menu-button {
    display: inline-flex; align-items: center; gap: var(--space-3); min-height: 44px; padding: 0 var(--space-1);
    background: none; border: 0; color: var(--clay); font-family: var(--font-label); font-size: var(--text-xs); font-weight: 500; letter-spacing: var(--track-wide); text-transform: uppercase; cursor: pointer;
  }
  .lcn-menu-button__bars { width: 22px; height: 9px; border-top: 1px solid currentColor; border-bottom: 1px solid currentColor; }
  .lcn-nav {
    position: absolute; top: 100%; left: 0; right: 0;
    flex-direction: column; align-items: stretch; gap: 0;
    background: var(--plaster); border-bottom: var(--rule);
    padding: var(--space-2) var(--gutter) var(--space-6);
    clip-path: inset(0 0 100% 0); visibility: hidden;
    transition: clip-path 420ms var(--ease-out), visibility 0s linear 420ms;
  }
  .lcn-header[data-open='true'] .lcn-nav { clip-path: inset(0 0 0 0); visibility: visible; transition: clip-path 420ms var(--ease-out); }
  .lcn-nav__list { flex-direction: column; gap: 0; }
  .lcn-nav__list a { display: block; padding: var(--space-5) 0; border-bottom: 1px solid color-mix(in srgb, var(--terra) 40%, transparent); font-size: var(--text-sm); }
  .lcn-nav__end { flex-direction: column; align-items: stretch; gap: 0; }
  .lcn-nav .lcn-header__cta { margin-top: var(--space-6); min-height: 52px; font-size: var(--text-sm); }
  .lcn-langs { border-left: 0; padding: var(--space-5) 0 0; gap: var(--space-4); }
}

/* Hero: the house, full-bleed photo with the name panel and the date bar on top */
.lcn-hero { border-bottom: var(--rule); }
.lcn-hero__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  min-height: min(calc(100svh - var(--header-h)), 960px);
}
.lcn-hero__photo { grid-column: 1 / -1; grid-row: 1; position: relative; margin: 0 calc((100% - 100vw) / 2); }
.lcn-hero__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.lcn-hero__photo figcaption { position: absolute; right: var(--gutter); bottom: var(--space-4); padding: var(--space-1) var(--space-3); background: var(--plaster); }
/* Preview ?hero=video: the hero holds while scrolling scrubs the push-in clip */
.lcn-hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 961px) {
  .lcn-hero--video { height: calc(min(calc(100svh - var(--header-h)), 960px) + 140vh); }
  .lcn-hero--video .lcn-hero__grid { position: sticky; top: var(--header-h); }
  .lcn-hero--video .lcn-cartouche, .lcn-hero--video .lcn-hero__photo figcaption { opacity: calc(1 - var(--scrub, 0) * 2.5); }
}
.lcn-cartouche { grid-column: 1 / span 5; grid-row: 1; align-self: start; position: relative; margin-top: var(--space-m); padding: var(--space-6) clamp(24px, 2.6vw, 40px); background: var(--plaster); }
.lcn-cartouche__title { font-size: var(--text-4xl); max-width: 9ch; letter-spacing: var(--track-display); text-transform: uppercase; line-height: var(--leading-tight); }
.lcn-cartouche__descriptor { margin-top: var(--space-5); color: var(--umber); }
.lcn-cartouche__voice { margin-top: clamp(24px, 3vw, 40px); padding-top: clamp(20px, 2vw, 28px); border-top: var(--rule); }
.lcn-cartouche__voice span { display: block; }

.lcn-chart { position: absolute; inset: 0; }
.lcn-chart__svg { width: 100%; height: 100%; }
.lcn-chart__land path { fill: #dcc7ac; }
.lcn-chart__graticule path { stroke: color-mix(in srgb, var(--terra) 32%, transparent); stroke-width: 1; }
.lcn-chart__graticule .lcn-chart__ticks { stroke: var(--terra-ink); stroke-width: 1.2; }
.lcn-chart__relief { stroke: color-mix(in srgb, var(--umber) 45%, transparent); stroke-width: 1; stroke-dasharray: 3 5; }
.lcn-chart__coast { stroke: var(--terra-ink); stroke-width: 1.6; }
.lcn-chart__depth use { stroke: var(--terra); stroke-width: 1; stroke-dasharray: 2 7; }
.lcn-chart__depth use:nth-child(2) { stroke-dasharray: 10 6 2 6; }
.lcn-chart__depth use:nth-child(3) { stroke-dasharray: 1 9; }
.lcn-chart__harbour { stroke: var(--terra-ink); stroke-width: 2.4; }
.lcn-chart__soundings text { font-family: var(--font-text); font-style: italic; font-size: 15px; fill: var(--terra-ink); }
.lcn-chart__names text { fill: var(--clay); }
.lcn-chart__name-land { font-family: var(--font-label); font-size: 12px; font-weight: 500; letter-spacing: 0.32em; }
.lcn-chart__name-coast { font-family: var(--font-text); font-style: italic; font-size: 17px; }
.lcn-chart__name-sea { font-family: var(--font-text); font-style: italic; font-size: 24px; letter-spacing: 0.2em; fill: var(--terra-ink) !important; }
.lcn-chart__rose { stroke: var(--terra-ink); stroke-width: 1; }
.lcn-chart__rose-north { fill: var(--terra-ink); }
.lcn-chart__rose text { stroke: none; fill: var(--terra-ink); font-family: var(--font-display); font-size: 16px; }
.lcn-chart__scale { stroke: var(--clay); }
.lcn-chart__scale text { stroke: none; fill: var(--clay); font-family: var(--font-label); font-size: 11px; letter-spacing: 0.16em; }
.lcn-chart__marker-ring { stroke: var(--terra-ink); stroke-width: 1.4; stroke-dasharray: 3 4; }
.lcn-chart__marker-dot { fill: var(--terra-ink); }
.lcn-chart__marker-pulse { fill: none; stroke: var(--terra-ink); stroke-width: 1.2; vector-effect: non-scaling-stroke; }
.lcn-chart__marker-shell { stroke: var(--terra-ink); stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.lcn-chart__marker-leader { stroke: var(--terra-ink); stroke-width: 1; }
.lcn-chart__marker-label { font-family: var(--font-display); font-size: 22px; letter-spacing: 0.08em; fill: var(--clay); }

.lcn-chart__coords { position: absolute; z-index: 1; font-family: var(--font-label); font-size: 11px; font-weight: 500; letter-spacing: 0.24em; color: var(--terra-ink); background: var(--plaster); padding: 4px 8px; }
.lcn-chart__coords--n { top: 16px; left: 16px; }
.lcn-chart__coords--e { top: 16px; right: calc(var(--gutter) + 16px); }

/* Sun sweep: one palm-frond shadow driven by scroll */
.lcn-sun { position: absolute; z-index: 1; pointer-events: none; width: 120%; top: -18%; left: -30%; color: var(--clay); opacity: 0.09; filter: blur(1.5px); transform: rotate(-8deg); }
.lcn-sun--field { color: #000; opacity: 0.16; width: 90%; top: -30%; left: auto; right: -25%; filter: blur(2px); transform: rotate(14deg); transform-origin: 80% 0; animation: lcn-sway 16s ease-in-out infinite alternate; }
@keyframes lcn-sway { to { transform: rotate(16.5deg) translateX(-1.5%); } }
.lcn-call { overflow: hidden; }
.lcn-call .lcn-wrap { position: relative; z-index: 2; }
@supports (animation-timeline: scroll()) {
  .lcn-sun:not(.lcn-sun--field) { animation: lcn-sweep linear both; animation-timeline: scroll(root); animation-range: 0 120vh; }
  @keyframes lcn-sweep { from { transform: translate(0, 0) rotate(-8deg); } to { transform: translate(22%, 12%) rotate(4deg); } }
}

/* Date check legend */
.lcn-check { border: var(--rule); background: var(--plaster); }
.lcn-check__title { display: block; padding: var(--space-4) var(--space-5); border-bottom: var(--rule); font-size: var(--text-xl); letter-spacing: var(--track-caps); text-transform: uppercase; font-family: var(--font-display); }
.lcn-check__fields { display: grid; grid-template-columns: 1fr 1fr 0.8fr; }
.lcn-field { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-4) var(--space-5); border-bottom: var(--rule); min-width: 0; }
.lcn-check__fields .lcn-field + .lcn-field { border-left: var(--rule); }
.lcn-field label, .lcn-field .lcn-field__label { font-family: var(--font-label); font-size: var(--text-2xs); font-weight: 500; letter-spacing: var(--track-wide); text-transform: uppercase; color: var(--umber); }
.lcn-input {
  width: 100%; min-height: 36px; padding: var(--space-1) 0;
  border: 0; border-radius: 0; background: transparent; color: var(--clay);
  font-family: var(--font-text); font-size: var(--text-md); font-variant-numeric: lining-nums tabular-nums;
  caret-color: var(--terra-ink); accent-color: var(--terra-ink);
  appearance: none;
}
.lcn-input:focus { outline: none; }
.lcn-field:focus-within { background: color-mix(in srgb, var(--sand) 45%, transparent); }
.lcn-input::placeholder { color: var(--umber); opacity: 1; }
select.lcn-input { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2396492d' stroke-width='1.4'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 2px center; background-size: 12px; padding-right: var(--space-5); }
.lcn-input::-webkit-calendar-picker-indicator { filter: invert(36%) sepia(42%) saturate(720%) hue-rotate(338deg); cursor: pointer; }
.lcn-check .lcn-button { width: 100%; min-height: 64px; font-size: var(--text-sm); }

@media (min-width: 961px) {
  .lcn-hero .lcn-check { grid-column: 1 / span 10; grid-row: 1; align-self: end; position: relative; margin-bottom: var(--space-m); display: grid; grid-template-columns: minmax(0, 1fr) auto; }
  .lcn-hero .lcn-check__title { grid-column: 1 / -1; }
  .lcn-hero .lcn-check__fields .lcn-field { border-bottom: 0; }
  .lcn-hero .lcn-check .lcn-button { min-height: 100%; padding-inline: var(--space-m); }
}
@media (max-width: 960px) {
  .lcn-hero__grid { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .lcn-hero__photo { grid-row: auto; margin: 0 calc(-1 * var(--gutter)); min-height: 62svh; }
  .lcn-cartouche { grid-column: 1; grid-row: auto; margin-top: 0; padding-inline: 0; background: none; }
  .lcn-hero .lcn-check { margin-bottom: var(--space-m); }
  .lcn-check__fields { grid-template-columns: 1fr 1fr; }
  .lcn-check__fields .lcn-field:nth-child(3) { grid-column: 1 / -1; border-left: 0; }
}

/* Intro with the bay chart: the chart sits beside the opening statement */
.lcn-section.lcn-intro--chart { padding-block: 0; border-bottom: var(--rule); }
.lcn-intro--chart .lcn-intro__grid { grid-template-rows: 1fr auto; min-height: min(calc(100svh - var(--header-h)), 920px); }
.lcn-intro--chart .lcn-intro__heading { grid-column: 1 / span 5; grid-row: 1; align-self: end; padding-top: var(--space-l); }
.lcn-intro--chart .lcn-intro__body { grid-column: 1 / span 5; grid-row: 2; padding-block: var(--space-m) var(--space-l); }
.lcn-intro__chart { grid-column: 6 / -1; grid-row: 1 / span 2; align-self: stretch; position: relative; overflow: hidden; min-height: 560px; margin-right: calc(-1 * (var(--gutter) + (100vw - min(100vw, var(--max))) / 2)); border-left: var(--rule); }
@media (max-width: 960px) {
  .lcn-intro--chart .lcn-intro__grid { grid-template-rows: none; min-height: 0; }
  .lcn-intro__chart { grid-column: 1 / -1; grid-row: 1; min-height: 0; margin-inline: calc(-1 * var(--gutter)); border-left: 0; }
  .lcn-chart { position: relative; inset: auto; aspect-ratio: 1 / 1.05; }
  .lcn-chart__coords--e { right: 16px; }
  .lcn-chart__soundings, .lcn-chart__scale, .lcn-chart__name-coast, .lcn-chart__relief { display: none; }
  .lcn-chart__name-land { font-size: 24px; }
  .lcn-chart__name-sea { display: none; }
  .lcn-chart__marker-label { font-size: 34px; }
  .lcn-intro--chart .lcn-intro__heading { grid-column: 1 / -1; grid-row: 2; padding-top: var(--space-l); }
  .lcn-intro--chart .lcn-intro__body { grid-column: 1 / -1; grid-row: 3; padding-top: var(--space-m); }
}

/* Sections */
.lcn-section { padding-block: var(--space-xl); position: relative; }
.lcn-intro { padding-bottom: var(--space-l); }
.lcn-facts { padding-block: var(--space-l); background: var(--sand); }
.lcn-spaces { padding-bottom: var(--space-l); }
.lcn-teaser { padding-top: var(--space-m); }
.lcn-section--field { background: var(--grain-clay-light), var(--grain-clay-dark), var(--clay); color: var(--plaster); }
.lcn-section--field a:hover, .lcn-footer a:hover { color: var(--sand); }
.lcn-section--field ::selection { background: var(--plaster); color: var(--clay); }
.lcn-heading { font-size: var(--text-4xl); letter-spacing: var(--track-display); }
.lcn-lede { max-width: 34ch; margin-top: var(--space-m); }
.lcn-copy { max-width: 62ch; }
.lcn-copy p + p { margin-top: 1em; }

/* Intro statement */
.lcn-intro__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 0 var(--space-m); align-items: start; }
.lcn-intro__heading { grid-column: 1 / span 6; font-size: var(--text-5xl); letter-spacing: var(--track-display); }
.lcn-intro__heading span { display: block; }
.lcn-intro__heading span:nth-child(3) { color: var(--terra-ink); }
.lcn-intro__body { grid-column: 8 / span 5; padding-top: var(--space-3); }
.lcn-intro__body .lcn-voice { margin-bottom: var(--space-m); font-style: normal; font-size: var(--text-xl); }
@media (max-width: 960px) {
  .lcn-intro__heading, .lcn-intro__body { grid-column: 1 / -1; }
  .lcn-intro__body { padding-top: var(--space-l); }
}

/* Facts: the chart legend */
.lcn-facts__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-l) var(--space-m); }
.lcn-facts__grid { row-gap: var(--space-m); }
.lcn-facts__head { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-2) var(--space-m); }
.lcn-facts__head .lcn-lede { margin-top: 0; }
.lcn-facts__list { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 var(--space-l); margin: 0; border-top: var(--rule); align-self: start; }
.lcn-fact { display: flex; align-items: baseline; gap: var(--space-4); padding: var(--space-5) 0; border-bottom: 1px solid color-mix(in srgb, var(--terra) 45%, transparent); }
.lcn-fact dt { flex: 1; display: flex; align-items: baseline; gap: var(--space-4); color: var(--clay); }
.lcn-fact dt::after { content: ''; flex: 1; border-bottom: 1px dotted var(--terra); transform: translateY(-4px) scaleX(var(--lead, 1)); transform-origin: left; }
.lcn-fact dd { margin: 0; font-family: var(--font-text); font-style: italic; font-size: var(--text-lg); line-height: var(--leading-tight); font-variant-numeric: lining-nums; white-space: nowrap; color: var(--terra-ink); }
.lcn-fact dd small { font-size: var(--text-md); margin-left: var(--space-1); }
.lcn-facts .lcn-fact dd { color: var(--clay); }
.lcn-facts__note { grid-column: 1 / -1; margin-top: calc(-1 * var(--space-m) + var(--space-4)); color: var(--umber); font-style: italic; font-size: var(--text-base); }
@media (max-width: 960px) {
  .lcn-facts__head, .lcn-facts__list, .lcn-facts__note { grid-column: 1 / -1; }
  .lcn-facts__list { grid-template-columns: minmax(0, 1fr); }
}

/* Spaces: coastal-view insets */
.lcn-spaces__head { margin-bottom: var(--space-l); }
.lcn-spaces__head .lcn-copy { max-width: 46ch; margin-top: var(--space-4); }
.lcn-spaces__list { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-l) var(--space-m); align-items: start; }
.lcn-space { grid-column: 1 / span 7; }
.lcn-space:first-child { grid-column: 1 / -1; }
.lcn-space:nth-child(3n) { grid-column: 9 / -1; margin-top: var(--space-xl); }
.lcn-plate { margin: 0; background: var(--sand); border: var(--rule); padding: clamp(8px, 0.8vw, 12px); }
.lcn-plate { display: block; }
.lcn-plate img { width: 100%; object-fit: cover; }
.lcn-plate figcaption { padding: var(--space-3) var(--space-1) var(--space-1); }
.lcn-space .lcn-plate img { aspect-ratio: 4 / 3; }
.lcn-space:first-child .lcn-plate { padding: 0; border: 0; background: none; }
.lcn-space:first-child .lcn-plate img { aspect-ratio: 21 / 9; }
.lcn-space__text { max-width: 44ch; padding-top: var(--space-4); }
.lcn-space__text h3 { font-size: var(--text-3xl); letter-spacing: var(--track-display); margin-bottom: var(--space-4); }
.lcn-space:nth-child(3n) .lcn-plate img { aspect-ratio: 4 / 5; }
@media (max-width: 960px) {
  .lcn-space, .lcn-space:nth-child(n) { grid-column: 1 / -1; margin-top: 0; }
  .lcn-space:first-child .lcn-plate img { aspect-ratio: 3 / 2; }
}

/* Location: bearings */
.lcn-location__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-l) var(--space-m); align-items: start; }
.lcn-location__text { grid-column: 1 / span 5; grid-row: 1; }
.lcn-location__text .lcn-copy { margin-top: var(--space-m); }
.lcn-location .lcn-detail { grid-column: 7 / -1; grid-row: 1 / span 2; }
.lcn-location .lcn-plate:not(.lcn-detail) { grid-column: 1 / span 4; grid-row: 2; }
.lcn-location .lcn-plate img { aspect-ratio: 4 / 3; }
.lcn-detail { background: var(--plaster); }
.lcn-detail__svg { width: 100%; height: auto; }
.lcn-detail__graticule path { stroke: color-mix(in srgb, var(--terra) 30%, transparent); }
.lcn-detail__courses path { stroke: var(--terra-ink); stroke-width: 2; stroke-dasharray: 9 7; }
.lcn-detail__points circle { fill: var(--plaster); stroke: var(--terra-ink); stroke-width: 2; }
.lcn-detail__labels text { font-family: var(--font-display); font-size: 25px; letter-spacing: 0.03em; fill: var(--clay); }
.lcn-detail__labels .lcn-detail__km { font-family: var(--font-text); font-style: italic; font-size: 23px; fill: var(--terra-ink); }
.lcn-detail__labels--far text { font-family: var(--font-label); font-size: 17px; font-weight: 500; letter-spacing: 0.16em; fill: var(--umber); }
.lcn-detail__far path { stroke: var(--umber); stroke-width: 1.4; }
.lcn-bearings { grid-column: 1 / -1; width: 100%; border-collapse: collapse; font-variant-numeric: lining-nums tabular-nums; }
.lcn-bearings caption { text-align: left; padding-bottom: var(--space-4); color: var(--umber); }
.lcn-bearings th, .lcn-bearings td { text-align: left; padding: var(--space-5) 0; border-top: var(--rule); font-weight: 400; vertical-align: baseline; }
.lcn-bearings tr:last-child th, .lcn-bearings tr:last-child td { border-bottom: var(--rule); }
.lcn-bearings th { font-size: var(--text-xl); font-family: var(--font-display); letter-spacing: var(--track-display); }
.lcn-bearings td { text-align: right; width: 18%; font-size: var(--text-md); }
.lcn-bearings td + td { color: var(--umber); font-style: italic; }
@media (max-width: 960px) {
  .lcn-location__text, .lcn-location .lcn-detail, .lcn-location .lcn-plate:not(.lcn-detail) { grid-column: 1 / -1; grid-row: auto; }
  .lcn-bearings td { width: auto; padding-left: var(--space-3); }
}

/* Gallery teaser */
.lcn-teaser__head { display: flex; justify-content: space-between; align-items: end; gap: var(--space-m); flex-wrap: wrap; margin-bottom: var(--space-l); }
.lcn-teaser__grid .lcn-plate { padding: 0; border: 0; background: none; }
.lcn-teaser__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-m); align-items: start; }
.lcn-teaser__grid .lcn-plate:nth-child(1) { grid-column: 1 / span 5; }
.lcn-teaser__grid .lcn-plate:nth-child(1) img { aspect-ratio: 4 / 5; }
.lcn-teaser__grid .lcn-plate:nth-child(2) { grid-column: 6 / span 4; margin-top: var(--space-xl); }
.lcn-teaser__grid .lcn-plate:nth-child(2) img { aspect-ratio: 1; }
.lcn-teaser__grid .lcn-plate:nth-child(3) { grid-column: 10 / span 3; margin-top: var(--space-l); }
.lcn-teaser__grid .lcn-plate:nth-child(3) img { aspect-ratio: 3 / 4; }
@media (max-width: 960px) {
  .lcn-teaser__grid .lcn-plate:nth-child(1) { grid-column: 1 / -1; }
  .lcn-teaser__grid .lcn-plate:nth-child(2) { grid-column: 1 / span 7; margin-top: 0; }
  .lcn-teaser__grid .lcn-plate:nth-child(3) { grid-column: 8 / -1; margin-top: var(--space-l); }
}

/* Availability call: the deep clay field */
.lcn-call__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-l) var(--space-m); align-items: end; }
.lcn-call__text { grid-column: 1 / span 7; }
.lcn-call__text .lcn-copy { margin-top: var(--space-m); color: var(--sand); }
.lcn-call__text .lcn-button { margin-top: var(--space-m); }
.lcn-call .lcn-button { --fill: var(--sand); background-color: var(--plaster); color: var(--clay); border-color: var(--plaster); }
.lcn-call .lcn-button:hover { border-color: var(--sand); color: var(--clay); }
.lcn-call :focus-visible { outline-color: var(--plaster); }
@media (max-width: 960px) { .lcn-call__text { grid-column: 1 / -1; } }

/* FAQ */
.lcn-faq__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-l) var(--space-m); }
.lcn-faq__grid { row-gap: var(--space-m); }
.lcn-faq__grid .lcn-heading { grid-column: 1 / -1; }
.lcn-faq__list { grid-column: 1 / span 9; border-top: var(--rule); }
.lcn-faq__item { border-bottom: var(--rule); }
.lcn-faq__item summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: var(--space-m); padding: var(--space-6) 0; cursor: pointer; font-family: var(--font-display); font-size: var(--text-xl); letter-spacing: var(--track-display); line-height: var(--leading-snug); }
.lcn-faq__item summary::-webkit-details-marker { display: none; }
.lcn-faq__item summary::after { content: ''; flex: 0 0 18px; height: 18px; background: linear-gradient(var(--terra-ink), var(--terra-ink)) center / 100% 1px no-repeat, linear-gradient(var(--terra-ink), var(--terra-ink)) center / 1px 100% no-repeat; transition: transform 320ms var(--ease-out); }
.lcn-faq__item[open] summary::after { transform: rotate(45deg); }
.lcn-faq__answer { padding: 0 0 var(--space-6); max-width: 60ch; }
@supports (interpolate-size: allow-keywords) {
  .lcn-faq__item { interpolate-size: allow-keywords; }
  .lcn-faq__item::details-content { block-size: 0; overflow: clip; transition: block-size 480ms var(--ease-out), content-visibility 480ms allow-discrete; }
  .lcn-faq__item[open]::details-content { block-size: auto; }
}
@media (max-width: 960px) { .lcn-faq__grid .lcn-heading, .lcn-faq__list { grid-column: 1 / -1; } }

/* Page header (gallery, stay) */
.lcn-pagehead { padding-block: var(--space-l) var(--space-m); border-bottom: var(--rule); }
.lcn-pagehead__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-4) var(--space-m); align-items: end; }
.lcn-pagehead h1 { grid-column: 1 / span 7; font-size: var(--text-5xl); letter-spacing: var(--track-display); text-transform: uppercase; }
.lcn-pagehead .lcn-voice { grid-column: 1 / span 7; font-style: normal; font-size: var(--text-xl); }
@media (max-width: 960px) { .lcn-pagehead h1, .lcn-pagehead .lcn-voice { grid-column: 1 / -1; } }

/* Gallery */
.lcn-gallery { padding-block: var(--space-m) var(--space-xl); }
.lcn-filter { display: flex; flex-wrap: wrap; gap: 0; margin-bottom: var(--space-l); border: var(--rule); width: fit-content; max-width: 100%; }
.lcn-filter button { min-height: 48px; padding: 0 var(--space-6); border: 0; border-right: var(--rule); background: transparent; color: var(--clay); font-family: var(--font-label); font-size: var(--text-xs); font-weight: 500; letter-spacing: var(--track-label); text-transform: uppercase; cursor: pointer; }
.lcn-filter button:last-child { border-right: 0; }
.lcn-filter button[aria-pressed='true'] { background: var(--clay); color: var(--plaster); }
.lcn-filter button:hover:not([aria-pressed='true']) { background: color-mix(in srgb, var(--sand) 60%, transparent); }
.lcn-gallery__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-auto-flow: dense; gap: var(--space-m); list-style: none; margin: 0; padding: 0; }
.lcn-gallery__item { grid-column: span 4; margin: 0; }
.lcn-gallery__item:nth-child(5n + 1) { grid-column: span 7; }
.lcn-gallery__item:nth-child(5n + 2) { grid-column: span 5; }
.lcn-gallery__item img { height: clamp(220px, 22vw, 360px); }
.lcn-gallery__item:nth-child(5n + 1) img, .lcn-gallery__item:nth-child(5n + 2) img { height: clamp(260px, 34vw, 560px); }
@media (max-width: 700px) {
  .lcn-gallery__item, .lcn-gallery__item:nth-child(n) { grid-column: 1 / -1; }
  .lcn-gallery__item img, .lcn-gallery__item:nth-child(n) img { height: auto; aspect-ratio: 3 / 2; }
}
.lcn-gallery__item[hidden] { display: none; }
.lcn-gallery__item button { display: block; width: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; text-align: left; color: inherit; font: inherit; }
/* Photos lean in on hover; the clip counters the zoom so the photo stays inside its own edges and the frame never moves */
.lcn-plate:not(.lcn-detail) img { clip-path: inset(0%); transition: scale 900ms var(--ease-out), clip-path 900ms var(--ease-out); }
@media (hover: hover) {
  .lcn-plate:not(.lcn-detail):hover img, .lcn-gallery__item button:focus-visible img { scale: 1.06; clip-path: inset(2.83%); }
}
.lcn-gallery__item figcaption { padding: var(--space-3) var(--space-1) var(--space-1); }
.lcn-lightbox { width: 100vw; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: var(--clay-deep); color: var(--plaster); }
.lcn-lightbox::backdrop { background: var(--clay-deep); }
.lcn-lightbox[open] { display: grid; grid-template-rows: auto 1fr auto; animation: lcn-fade 280ms var(--ease-out); }
.lcn-lightbox__bar { display: flex; justify-content: space-between; align-items: center; padding: var(--space-4) var(--gutter); border-bottom: 1px solid color-mix(in srgb, var(--sand) 30%, transparent); }
.lcn-lightbox__stage { position: relative; min-height: 0; }
.lcn-lightbox__stage img { position: absolute; inset: 0; margin: auto; width: auto; height: auto; max-width: calc(100% - 2 * var(--gutter)); max-height: calc(100% - 2 * var(--space-m)); border: 10px solid var(--sand); }
.lcn-lightbox__foot { display: flex; justify-content: space-between; align-items: center; gap: var(--space-m); padding: var(--space-4) var(--gutter) var(--space-6); border-top: 1px solid color-mix(in srgb, var(--sand) 30%, transparent); }
.lcn-lightbox button { min-height: 44px; padding: 0 var(--space-4); background: none; border: 1px solid color-mix(in srgb, var(--sand) 55%, transparent); color: var(--plaster); font-family: var(--font-label); font-size: var(--text-xs); font-weight: 500; letter-spacing: var(--track-label); text-transform: uppercase; cursor: pointer; }
.lcn-lightbox button:hover { background: var(--plaster); color: var(--clay); }
.lcn-lightbox :focus-visible { outline-color: var(--plaster); }
@keyframes lcn-fade { from { opacity: 0; } }

/* Stay & book */
.lcn-booking { padding-block: var(--space-l) var(--space-xl); }
.lcn-booking__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-l) var(--space-m); align-items: start; }
.lcn-booking__calendar { grid-column: 1 / span 7; }
.lcn-booking__calendar { grid-row: 1; }
.lcn-booking__form { grid-column: 9 / -1; grid-row: 1 / span 2; position: sticky; top: calc(var(--header-h) + var(--space-6)); }
.lcn-booking__notes { grid-column: 1 / span 7; grid-row: 2; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: var(--rule); border-left: var(--rule); margin: 0; }
.lcn-booking__notes > div { padding: var(--space-5); border-right: var(--rule); border-bottom: var(--rule); }
.lcn-booking__notes dt { color: var(--umber); margin-bottom: var(--space-2); }
.lcn-booking__notes dd { margin: 0; font-size: var(--text-md); }
@media (max-width: 1100px) {
  .lcn-booking__calendar, .lcn-booking__form, .lcn-booking__notes { grid-column: 1 / -1; grid-row: auto; position: static; }
}
@media (max-width: 640px) { .lcn-booking__notes { grid-template-columns: 1fr; } }

/* Calendar: the tide table */
lcn-calendar { display: block; min-height: 540px; }
.lcn-cal__bar { display: flex; justify-content: space-between; align-items: center; gap: var(--space-4); padding-bottom: var(--space-4); border-bottom: var(--rule); }
.lcn-cal__bar h2 { font-size: var(--text-3xl); letter-spacing: var(--track-display); }
.lcn-cal__nav { display: flex; }
.lcn-cal__nav button { width: 48px; height: 48px; display: grid; place-items: center; background: none; border: var(--rule); color: var(--clay); cursor: pointer; }
.lcn-cal__nav button + button { border-left: 0; }
.lcn-cal__nav button:hover:not([disabled]) { background: var(--clay); color: var(--plaster); }
.lcn-cal__nav button[disabled] { color: var(--stone); cursor: default; }
.lcn-cal__nav svg { width: 16px; height: 16px; }
.lcn-cal__months { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-m); padding-top: var(--space-m); }
@media (max-width: 720px) { .lcn-cal__months { grid-template-columns: 1fr; } }
.lcn-cal__month-title { font-family: var(--font-display); font-size: var(--text-lg); letter-spacing: var(--track-caps); text-transform: uppercase; margin: 0 0 var(--space-3); }
.lcn-cal__table { width: 100%; border-collapse: collapse; table-layout: fixed; font-variant-numeric: lining-nums tabular-nums; }
.lcn-cal__table th { padding: var(--space-2) 0; font-family: var(--font-label); font-size: var(--text-2xs); font-weight: 500; letter-spacing: var(--track-label); text-transform: uppercase; color: var(--umber); border-bottom: var(--rule); }
.lcn-cal__table td { padding: 0; border-bottom: 1px solid color-mix(in srgb, var(--terra) 35%, transparent); height: 52px; }
.lcn-day {
  position: relative; width: 100%; height: 52px; padding: 0;
  display: grid; place-items: center;
  border: 0; background: transparent; color: var(--clay);
  font-family: var(--font-text); font-size: var(--text-md); cursor: pointer;
}
.lcn-day::after { content: ''; position: absolute; left: var(--space-1); right: var(--space-1); bottom: var(--space-2); height: 0; border-top: 1px dashed transparent; }
.lcn-day[data-state='free']::after { border-top-color: color-mix(in srgb, var(--terra) 55%, transparent); }
.lcn-day:hover:not([aria-disabled='true']) { background: color-mix(in srgb, var(--sand) 60%, transparent); }
.lcn-day[data-state='booked'] { color: var(--stone); cursor: not-allowed; }
.lcn-day[data-state='booked']::before { content: ''; position: absolute; inset: var(--space-4) 18%; background: linear-gradient(to top right, transparent calc(50% - 0.5px), var(--stone) calc(50% - 0.5px), var(--stone) calc(50% + 0.5px), transparent calc(50% + 0.5px)); }
.lcn-day[data-state='past'] { color: var(--stone); cursor: default; }
.lcn-day[data-today] { text-decoration: underline; text-decoration-color: var(--terra); text-underline-offset: 6px; }
.lcn-day[data-preview]::after { left: 0; right: 0; border-top: 1px dashed var(--terra-ink); }
.lcn-day[data-range]::after { left: 0; right: 0; border-top: 2px solid var(--terra-ink); }
.lcn-day[data-edge] { background: var(--terra-ink); color: var(--plaster); }
.lcn-day[data-edge]::after { border-top-color: transparent; }
.lcn-day[data-edge]::before { display: none; }
.lcn-cal__legend { display: flex; flex-wrap: wrap; gap: var(--space-3) var(--space-8); margin: var(--space-m) 0 0; padding: 0; list-style: none; color: var(--umber); }
.lcn-cal__legend li { display: inline-flex; align-items: center; gap: var(--space-3); }
.lcn-cal__key { width: 28px; height: 18px; position: relative; border: 0; border-bottom: 1px dashed var(--terra); }
.lcn-cal__key--booked { background: linear-gradient(to top right, transparent calc(50% - 0.5px), var(--stone) calc(50% - 0.5px), var(--stone) calc(50% + 0.5px), transparent calc(50% + 0.5px)); }
.lcn-cal__key--chosen { background: var(--terra-ink); border-color: var(--terra-ink); }
.lcn-cal__key--stay { border: 0; border-bottom: 2px solid var(--terra-ink); }
.lcn-cal__status { min-height: 1.6em; margin-top: var(--space-4); font-style: italic; color: var(--umber); }
.lcn-cal__status[data-tone='warn'] { color: var(--terra-ink); }
.lcn-cal__loading { padding: var(--space-l) 0; color: var(--umber); font-style: italic; }

/* Enquiry form */
.lcn-form { border: var(--rule); }
.lcn-form__title { padding: var(--space-5); border-bottom: var(--rule); font-size: var(--text-3xl); letter-spacing: var(--track-display); }
.lcn-form__row { display: grid; grid-template-columns: 1fr 1fr; }
.lcn-form__row .lcn-field + .lcn-field { border-left: var(--rule); }
.lcn-form textarea.lcn-input { min-height: 120px; resize: vertical; line-height: var(--leading-normal); font-size: var(--text-md); }
.lcn-field__error { font-family: var(--font-text); font-style: italic; font-size: var(--text-base); color: var(--terra-ink); }
.lcn-field__error:empty { display: none; }
.lcn-field[data-invalid] { background: color-mix(in srgb, var(--terra) 10%, transparent); }
.lcn-consent { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-4); align-items: flex-start; padding: var(--space-4) var(--space-5); border-bottom: var(--rule); font-size: var(--text-base); line-height: var(--leading-normal); }
.lcn-consent label { flex: 1; }
.lcn-consent .lcn-field__error { flex-basis: 100%; padding-left: var(--space-8); }
.lcn-consent input { width: 20px; height: 20px; margin: var(--space-1) 0 0; accent-color: var(--terra-ink); flex: none; }
.lcn-form .lcn-button { width: 100%; min-height: 64px; }
.lcn-form__status { padding: var(--space-4) var(--space-5); font-style: italic; }
.lcn-form__status:empty { display: none; }
.lcn-form__status[data-tone='error'] { color: var(--terra-ink); }
.lcn-form__done { padding: clamp(28px, 3vw, 48px) var(--space-5); text-align: center; }
.lcn-form__done svg { width: 64px; margin: 0 auto var(--space-5); color: var(--terra); }
.lcn-form__done h3 { font-size: var(--text-3xl); margin-bottom: var(--space-3); }
.lcn-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
@media (max-width: 480px) { .lcn-form__row { grid-template-columns: 1fr; } .lcn-form__row .lcn-field + .lcn-field { border-left: 0; } }

/* Footer */
.lcn-footer { background: var(--grain-clay-light), var(--grain-clay-dark), var(--clay); color: var(--plaster); padding-block: var(--space-l) var(--space-m); }
.lcn-footer a:hover { color: var(--sand); }
.lcn-footer :focus-visible { outline-color: var(--plaster); }
.lcn-footer__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-l) var(--space-m); }
.lcn-footer__brand { grid-column: 1 / span 5; }
.lcn-footer__brand svg { width: 56px; color: var(--sand); margin-bottom: var(--space-5); }
.lcn-footer__brand p:first-of-type { font-family: var(--font-display); font-size: var(--text-3xl); letter-spacing: var(--track-caps); text-transform: uppercase; line-height: var(--leading-tight); }
.lcn-footer__brand .lcn-label { margin-top: var(--space-3); color: var(--sand); }
.lcn-footer__col { grid-column: span 2; }
.lcn-footer__col:first-of-type { grid-column: 7 / span 3; }
.lcn-footer__col h2 { font-family: var(--font-label); font-size: var(--text-2xs); font-weight: 500; letter-spacing: var(--track-wide); text-transform: uppercase; color: var(--sand); margin-bottom: var(--space-4); }
.lcn-footer__col ul { list-style: none; margin: 0; padding: 0; }
.lcn-footer__col li + li { margin-top: var(--space-2); }
.lcn-footer__col address { font-style: normal; }
.lcn-footer__base { grid-column: 1 / -1; display: flex; justify-content: space-between; flex-wrap: wrap; gap: var(--space-3) var(--space-8); padding-top: var(--space-m); border-top: 1px solid color-mix(in srgb, var(--sand) 35%, transparent); color: var(--sand); font-size: var(--text-sm); }
@media (max-width: 960px) {
  .lcn-footer__brand { grid-column: 1 / -1; }
  .lcn-footer__col, .lcn-footer__col:first-of-type { grid-column: span 6; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
