/* CLAM Studios: three base colors, semantic tints and a single type scale. */
:root {
  --primary: #273b3c;
  --accent: #b38a37;
  --neutral: #ffffff;
  --background: var(--neutral);
  --foreground: var(--primary);
  --primary-foreground: var(--neutral);
  --secondary: color-mix(in srgb, var(--primary) 4%, var(--neutral));
  --muted: var(--secondary);
  --muted-foreground: color-mix(in srgb, var(--foreground) 75%, var(--neutral));
  --border: color-mix(in srgb, var(--primary) 17%, var(--neutral));
  --ring: var(--primary);
  --clam-radius: 6px;
  --clam-font: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --clam-small: .875rem;
  --clam-body: 1rem;
  --clam-label: 1.125rem;
  --clam-heading: 1.75rem;
  --clam-display: 2.5rem;
  --clam-space: 1.5rem;
  --clam-wide-space: 3rem;
  --clam-sidebar: 19rem;
}
html { scroll-behavior: auto; }
body { background: var(--background); color: var(--foreground); font-family: var(--clam-font); font-size: var(--clam-body); }
.clam-sidebar, .clam-section, .clam-footer { box-sizing: border-box; }
.clam-sidebar { padding: var(--clam-space); border-bottom: 1px solid var(--border); background: var(--neutral); }
.clam-sidebar a { text-decoration: none; }
.clam-brand { display: block; color: var(--primary); font-size: var(--clam-heading); font-weight: 400; line-height: 1.2; }
.clam-nav { display: flex; flex-wrap: wrap; gap: .5rem var(--clam-space); margin-top: var(--clam-space); }
.clam-nav a { font-size: var(--clam-small); text-transform: lowercase; line-height: 1.6; }
.clam-nav a::first-letter { text-transform: uppercase; }
.clam-nav a:hover, .clam-nav a[aria-current='page'] { color: var(--primary); text-decoration: underline; text-underline-offset: .3rem; }
.clam-sidebar-location { margin-top: var(--clam-space); font-size: var(--clam-small); color: var(--muted-foreground); }
.clam-section { padding: var(--clam-wide-space) var(--clam-space); background: var(--neutral); }
.clam-section:nth-of-type(even) { background: var(--secondary); }
.clam-section h1, .clam-section h2, .clam-section h3 { font-family: var(--clam-font); letter-spacing: 0; font-weight: 400; margin: 0; overflow-wrap: anywhere; }
.clam-section h1 { font-size: var(--clam-display); line-height: 1.15; max-width: 20ch; }
.clam-section h2 { font-size: var(--clam-heading); line-height: 1.25; margin-bottom: var(--clam-space); }
.clam-section h3 { font-size: var(--clam-label); line-height: 1.4; margin-bottom: .75rem; }
.clam-section p { line-height: 1.7; margin: 0 0 var(--clam-space); max-width: 68ch; }
.clam-section ul { padding-left: 1.2rem; margin: 0; line-height: 1.9; }
.clam-section img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--clam-radius); }
.clam-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: var(--clam-space); }
.clam-actions .isite-btn { border-radius: var(--clam-radius); background: var(--primary); color: var(--neutral); border: 1px solid var(--primary); transition: none; }
.clam-actions .clam-outline { background: var(--neutral); color: var(--primary); }
.clam-actions .isite-btn:disabled { opacity: .6; }
.clam-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--clam-space); }
.clam-tile { min-width: 0; border-bottom: 1px solid var(--border); padding-bottom: var(--clam-space); }
.clam-tile p { font-size: var(--clam-small); margin-bottom: .75rem; }
.clam-tile ul { font-size: var(--clam-small); }
.clam-work { display: block; text-decoration: none; }
.clam-work h3 { padding: .75rem; background: var(--secondary); text-align: center; }
.clam-photo-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--clam-space); margin-top: var(--clam-space); }
.clam-photo-grid figure { margin: 0; min-width: 0; }
.clam-section .clam-photo-grid img { display: block; aspect-ratio: 4 / 3; }
.clam-photo-grid figcaption { font-size: var(--clam-small); line-height: 1.5; margin-top: .5rem; color: var(--muted-foreground); }
.clam-photo-grid a { text-decoration: underline; text-underline-offset: .2rem; }
.clam-video-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--clam-space); margin-bottom: var(--clam-space); }
.clam-video { min-width: 0; }
.clam-video iframe { display: block; width: 100%; aspect-ratio: 16 / 9; border: 1px solid var(--border); border-radius: var(--clam-radius); background: var(--secondary); }
.clam-video h3 { margin-top: .75rem; }
.clam-categories { display: flex; flex-wrap: wrap; gap: .75rem var(--clam-space); color: var(--primary); margin-bottom: var(--clam-space); }
.clam-process { display: grid; grid-template-columns: minmax(0, 1fr); padding-left: 1.5rem; gap: var(--clam-space); line-height: 1.6; }
.clam-footer { padding: var(--clam-wide-space) var(--clam-space); background: var(--secondary); border-top: 1px solid var(--border); font-size: var(--clam-small); }
.clam-footer p { margin: 0 0 .75rem; }
.clam-footer address { font-style: normal; line-height: 1.8; margin-bottom: var(--clam-space); }
.clam-footer address a { display: block; }
.clam-footer-links { display: flex; flex-wrap: wrap; gap: var(--clam-space); }
body:has(.clam-sidebar) .fade-in { opacity: 1; transform: none; animation: none; transition: none; }
body:has(.clam-sidebar) input, body:has(.clam-sidebar) textarea, body:has(.clam-sidebar) select, body:has(.clam-sidebar) .btn-primary { border-radius: var(--clam-radius); }
body:has(.clam-sidebar) form .imtof-form-msg { color: var(--foreground); }
body:has(.clam-sidebar) .clam-booking { padding-top: 0; }
body:has(.clam-sidebar) .clam-booking > section { padding: var(--clam-space) 0; }
body:has(.clam-sidebar) .clam-booking .container { padding: 0; }
body:has(.clam-sidebar) .clam-booking .text-center { text-align: left; }
@media (min-width: 640px) {
  .clam-photo-grid, .clam-video-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .clam-photo-grid figure:first-child { grid-column: 1 / -1; }
  .clam-section .clam-photo-grid figure:first-child img { aspect-ratio: 16 / 7; }
  .clam-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .clam-process { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .clam-sidebar { position: fixed; inset: 0 auto 0 0; width: var(--clam-sidebar); border-bottom: 0; border-right: 1px solid var(--border); display: flex; flex-direction: column; align-items: flex-end; text-align: right; padding: var(--clam-wide-space) var(--clam-space); overflow-y: auto; }
  .clam-brand { order: 0; margin-bottom: var(--clam-space); font-size: var(--clam-heading); }
  .clam-sidebar .clam-brand img { width: 160px; }
  .clam-nav { display: flex; flex-direction: column; gap: .75rem; margin: 0; }
  .clam-sidebar-location { order: 4; }
  .clam-section, .clam-footer { margin-left: var(--clam-sidebar); padding: var(--clam-wide-space); }
}
@media (min-width: 1440px) {
  .clam-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.clam-brand img { display: block; width: 96px; height: auto; }
.clam-footer-logo { display: block; width: 120px; height: auto; margin-bottom: var(--clam-space); }
