/* Melbourne Property Photos: "Sunlit Studio" theme override.
   Loads after styles.css and site.css. Decorative layers are background images
   or empty pseudo-elements behind content, with pointer-events:none. No motion. */

:root {
  --color-ivory: #FBF7EF;
  --color-sand: #F2E7D3;
  --color-sand-deep: #E6D2AE;
  --color-seaglass: #E3EEE8;
  --color-soft-surface: #E3EEE8;
  --color-muted: #4E5C60;
  --color-terracotta: #9A4A2E;
  --color-sun: #D9913F;
  --color-coral: #C9663F;
  --color-gold-on-dark: #F2D9A9;
  --color-on-dark-soft: #D5E0DD;
  --color-btn-on-dark: #F6E7C8;
  --radius-panel: 14px;
  --border-hairline: 1px solid rgba(16, 42, 58, 0.13);
  --shadow-card: 0 1px 2px rgba(16, 42, 58, 0.06), 0 14px 30px -20px rgba(16, 42, 58, 0.35);
  --sunrise: linear-gradient(90deg, #D9913F 0%, #C9663F 38%, #115E63 100%);

  --svg-sun: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 130'%3E%3Cg fill='none' stroke='%23C9822F'%3E%3Ccircle cx='120' cy='122' r='46' fill='%23E2A458' fill-opacity='.16' stroke-opacity='.45'/%3E%3Ccircle cx='120' cy='122' r='66' stroke-opacity='.32'/%3E%3Ccircle cx='120' cy='122' r='86' stroke-opacity='.22'/%3E%3Ccircle cx='120' cy='122' r='106' stroke-opacity='.14'/%3E%3C/g%3E%3Cpath d='M0 122.5H240M36 127.5H204' fill='none' stroke='%23115E63' stroke-opacity='.3'/%3E%3C/svg%3E");
  --svg-contour: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 120' preserveAspectRatio='none'%3E%3Cg fill='none'%3E%3Cpath vector-effect='non-scaling-stroke' stroke='%23115E63' stroke-opacity='.24' d='M0 60C180 36 360 88 600 58S1010 30 1200 54'/%3E%3Cpath vector-effect='non-scaling-stroke' stroke='%23115E63' stroke-opacity='.16' d='M0 82C220 60 420 106 640 80S1020 56 1200 78'/%3E%3Cpath vector-effect='non-scaling-stroke' stroke='%23C9822F' stroke-opacity='.34' d='M0 104C240 86 460 118 700 100S1040 84 1200 98'/%3E%3C/g%3E%3C/svg%3E");
  --svg-frond: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cg fill='none' stroke='%23115E63' stroke-opacity='.26' stroke-linecap='round'%3E%3Cpath d='M10 190Q90 120 190 20'/%3E%3Cpath d='M43 161q-30-10-38-46M43 161q12 26 44 34M77 129q-28-12-32-50M77 129q14 24 46 28M113 95q-24-12-26-44M113 95q14 20 42 22M151 59q-18-10-18-34M151 59q12 14 32 14'/%3E%3C/g%3E%3C/svg%3E");
  --svg-orbit: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 400'%3E%3Cg fill='none' stroke='%2382D8D2' transform='rotate(-14 400 140)'%3E%3Cellipse cx='400' cy='140' rx='300' ry='86' stroke-opacity='.22'/%3E%3Cellipse cx='400' cy='140' rx='214' ry='60' stroke-opacity='.14'/%3E%3C/g%3E%3Ccircle cx='109' cy='213' r='3' fill='%23E2A458'/%3E%3Ccircle cx='379' cy='57' r='2' fill='%23FBF7EF' fill-opacity='.7'/%3E%3Cg fill='%23FBF7EF' fill-opacity='.45'%3E%3Ccircle cx='60' cy='70' r='1.2'/%3E%3Ccircle cx='250' cy='28' r='1'/%3E%3Ccircle cx='520' cy='300' r='1.2'/%3E%3Ccircle cx='300' cy='336' r='1'/%3E%3Ccircle cx='190' cy='120' r='1'/%3E%3Ccircle cx='566' cy='214' r='1.3'/%3E%3C/g%3E%3C/svg%3E");
  --svg-map: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 480 240'%3E%3Cg fill='none' stroke='%23FBF7EF'%3E%3Cpath d='M0 236Q240 120 480 150' stroke-opacity='.08'/%3E%3Cpath d='M60 176L140 122L232 142L322 72L420 98' stroke-opacity='.2' stroke-dasharray='2 5'/%3E%3C/g%3E%3Cg fill='%23FBF7EF' fill-opacity='.5'%3E%3Ccircle cx='60' cy='176' r='2'/%3E%3Ccircle cx='140' cy='122' r='2'/%3E%3Ccircle cx='322' cy='72' r='2'/%3E%3Ccircle cx='420' cy='98' r='2'/%3E%3C/g%3E%3Ccircle cx='232' cy='142' r='3.5' fill='%23E2A458'/%3E%3C/svg%3E");
}

body { background: var(--color-ivory); }

/* ---------- Eyebrow: small sun-on-horizon mark with five fine rays ---------- */
.eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--color-terracotta);
}
.eyebrow::before {
  content: "";
  flex: none;
  width: 24px;
  height: 18px;
  pointer-events: none;
  background:
    linear-gradient(var(--mark-line, #115E63), var(--mark-line, #115E63)) 0 100% / 100% 2px no-repeat,
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 18'%3E%3Cpath fill='%23D9913F' d='M6 17a6 6 0 0 1 12 0Z'/%3E%3Cpath fill='none' stroke='%23D9913F' stroke-width='1.25' stroke-linecap='round' d='M12 4v3M5.2 7.2l1.8 1.8M18.8 7.2 17 9M2 12.4l2.5.8M22 12.4l-2.5.8'/%3E%3C/svg%3E") center / 24px 18px no-repeat;
}

/* ---------- Header and navigation ---------- */
.site-header {
  background: var(--sunrise) top / 100% 3px no-repeat, var(--color-ivory);
}
.wordmark__secondary { color: var(--color-teal); }
.wordmark--on-dark .wordmark__secondary { color: var(--color-gold-on-dark); }
.site-nav__list a[aria-current="page"]:not(.btn) { text-decoration-color: var(--color-coral); }
.nav-toggle[aria-expanded="true"] { background: var(--color-sand); }

@media (max-width: 1099px) {
  .js .site-nav.is-open .site-nav__list > li:not(.site-nav__cta) { border-bottom: var(--border-hairline); }
}

/* ---------- Buttons ---------- */
.btn--primary { box-shadow: 0 1px 0 rgba(16, 42, 58, 0.18), 0 8px 18px -12px rgba(17, 94, 99, 0.7); }
.btn--secondary { background: var(--color-white); }
.btn--secondary:hover,
.btn--secondary:active { background: var(--color-sand); }
.btn--on-dark { background: var(--color-btn-on-dark); border-color: var(--color-btn-on-dark); }
.btn--on-dark:hover,
.btn--on-dark:active { background: var(--color-white); border-color: var(--color-white); }

.text-link:hover { color: var(--color-teal-hover); }

/* ---------- Hero and page leads: morning light over the lagoon ---------- */
.hero,
.page-lead {
  position: relative;
  isolation: isolate;
}
.hero {
  background:
    radial-gradient(ellipse 60% 55% at 92% 6%, rgba(226, 164, 88, 0.26), rgba(226, 164, 88, 0) 70%),
    linear-gradient(180deg, var(--color-ivory) 0%, #F5ECDA 100%);
}
.page-lead {
  background:
    radial-gradient(ellipse 55% 60% at 96% 0%, rgba(226, 164, 88, 0.24), rgba(226, 164, 88, 0) 70%),
    linear-gradient(180deg, var(--color-ivory) 0%, var(--color-sand) 100%);
}
.hero::before,
.page-lead::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 96px;
  z-index: -1;
  pointer-events: none;
  background: var(--svg-contour) center bottom / 100% 100% no-repeat;
}
.hero::after,
.page-lead::after {
  content: "";
  position: absolute;
  top: 12px;
  right: 0;
  width: min(520px, 62vw);
  aspect-ratio: 240 / 130;
  z-index: -1;
  pointer-events: none;
  background: var(--svg-sun) center / contain no-repeat;
}
.page-lead::after { width: min(380px, 50vw); }

.hero__delivery {
  gap: 8px;
  margin: 16px 0 20px;
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  color: var(--color-teal);
  font-size: 15px;
  line-height: 1.55;
  font-weight: 600;
  max-width: none;
}
.hero__delivery svg { width: 16px; height: 16px; margin-top: 3px; }
.editorial-grid .hero__delivery { margin-top: 16px; }
.hero__student { color: var(--color-teal); }

/* Sand photo mat sits outside the image edge, never over the photo. */
.hero__media img,
.page-lead__media img { box-shadow: 16px 16px 0 var(--color-sand-deep); }

/* ---------- Soft sections: sea glass with fine frond linework ---------- */
.section--soft {
  background: var(--svg-frond) right 24px top 24px / 170px auto no-repeat, var(--color-seaglass);
}
.section--soft.student-teaser { background-color: var(--color-sand); }

/* ---------- Service cards ---------- */
.home-service,
.package,
.comparison-panel,
.service-lead,
.timing-note,
.prep-callout,
.plan-frame,
.tour-preview { box-shadow: var(--shadow-card); }

.home-service--lead {
  border-top: var(--border-hairline);
  background:
    var(--sunrise) top / 100% 5px no-repeat,
    var(--svg-sun) right -24px bottom -6px / 240px auto no-repeat,
    var(--color-white);
}
.service-number {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 1.375rem;
  line-height: 1;
  letter-spacing: 0;
  color: var(--color-terracotta);
}
.home-service .service-deadline {
  padding-top: 16px;
  border-top: var(--border-hairline);
}
.step::before { color: var(--color-terracotta); }

.service-lead,
.package {
  background: var(--sunrise) top / 100% 4px no-repeat, var(--color-white);
}
.service-lead__label { color: var(--color-terracotta); }

/* ---------- Product pages ---------- */
.product-jump { gap: 12px; }
.product-jump a {
  padding-inline: 16px;
  color: var(--color-teal);
  background: var(--color-white);
  border: 1px solid var(--color-control-border);
  border-radius: 999px;
  text-decoration: none;
}
.product-jump a:hover {
  color: var(--color-teal-hover);
  border-color: var(--color-teal);
  text-decoration: underline;
}
.comparison-panel { box-shadow: inset 0 4px 0 var(--color-teal), var(--shadow-card); }
.comparison-panel dt { color: var(--color-navy); }

/* ---------- About: student statement ---------- */
.student-statement {
  border-top: 0;
  background:
    var(--sunrise) top / 100% 4px no-repeat,
    var(--svg-frond) right 20px bottom 16px / 150px auto no-repeat,
    var(--color-sand);
}
.student-statement__quote { color: var(--color-navy); }
.student-statement__facts span { border-top-color: rgba(16, 42, 58, 0.16); }

/* ---------- Packages ---------- */
.package__scope { border-top: var(--border-hairline); }
.extra { border-top: 2px solid var(--color-teal); }
.extra h3 { color: var(--color-navy); }

/* ---------- FAQ ---------- */
.faq-item summary::after {
  border-color: var(--color-teal);
  color: var(--color-teal);
}
.faq-item[open] summary::after {
  background: var(--color-teal);
  color: var(--color-white);
}

/* ---------- Request and CTA band: dusk over the Space Coast ---------- */
.request {
  --mark-line: #82D8D2;
  background:
    var(--svg-orbit) right -40px top -24px / min(680px, 110%) auto no-repeat,
    linear-gradient(160deg, #102A3A 0%, #0F3442 58%, #0E3B45 100%);
}
.request .caption,
.request figcaption { color: var(--color-on-dark-soft); }
.request .checkbox input { accent-color: #82D8D2; }
.error-summary { border-left: 4px solid var(--color-error); }
.form-status { border-left: 4px solid var(--color-teal); }

/* ---------- Footer: discreet map points ---------- */
.site-footer {
  border-top: 0;
  background:
    var(--sunrise) top / 100% 3px no-repeat,
    var(--svg-map) right 0 bottom 0 / min(460px, 90%) auto no-repeat,
    var(--color-navy);
}
.site-footer a:hover { color: var(--color-gold-on-dark); }

/* ---------- Lightbox ---------- */
.lightbox {
  background: var(--sunrise) top / 100% 4px no-repeat, var(--color-ivory);
  box-shadow: 0 24px 60px -30px rgba(0, 0, 0, 0.6);
}
.lightbox::backdrop { background: rgba(16, 42, 58, 0.9); }

/* ---------- Responsive ---------- */
@media (max-width: 899px) {
  .hero::after { width: min(320px, 58vw); top: 8px; }
  .page-lead::after { width: min(260px, 50vw); top: 8px; }
  .request { background-size: min(460px, 120%) auto, auto; }
}
@media (max-width: 639px) {
  .hero__media img,
  .page-lead__media img { box-shadow: 10px 10px 0 var(--color-sand-deep); }
  .hero::before,
  .page-lead::before { height: 64px; }
  .section--soft { background-size: 120px auto, auto; background-position: right 12px top 12px, 0 0; }
  .student-statement { background-size: 100% 4px, 110px auto, auto; }
  .home-service--lead { background-size: 100% 5px, 180px auto, auto; }
  .site-footer { background-size: 100% 3px, min(300px, 90%) auto, auto; }
}

/* ---------- Forced colors: drop decoration, keep structure ---------- */
@media (forced-colors: active) {
  .hero::before, .hero::after,
  .page-lead::before, .page-lead::after,
  .eyebrow::before { display: none; }
  .hero, .page-lead, .section--soft, .home-service--lead, .service-lead, .package,
  .student-statement, .request, .site-footer, .site-header, .lightbox { background-image: none; }
  .hero__media img, .page-lead__media img { box-shadow: none; }
}
