/* Raffybraids — self-hosted styles. Replaces the Tailwind CDN, which prints a
   production warning and blocks render. Utility class names kept so markup
   stays familiar. */

:root{
  --rose:#E8AFAF; --rose-dark:#D49595; --rose-hover:#C27878;
  --pink:#F9E0E3; --pink-soft:#FCEDED; --pink-light:#FFF5F5;
  --ink:#1A1A1A; --stone:#292524; --stone-6:#57534e; --stone-5:#78716c;
  --line:#f5e4e4;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;font-family:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  background:var(--pink);color:var(--ink);line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
code{background:#fff;padding:2px 6px;border-radius:6px;font-size:.9em;border:1px solid var(--line)}

.wrap{max-width:1080px;margin:0 auto;padding:0 20px}
.max-w-3xl{max-width:768px;margin-inline:auto}
.max-w-2xl{max-width:640px;margin-inline:auto}
.hidden{display:none !important}
.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}

/* nav */
.nav-bar{
  position:sticky;top:0;z-index:50;background:rgba(249,224,227,.92);
  backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid rgba(232,175,175,.35);
  padding:12px 0;
}
.nav-bar a{color:var(--ink);text-decoration:none}
/* fix: .nav-bar a (0,1,1) was overriding .text-white (0,1,0), rendering the Book Now label black-on-black */
.nav-bar a.text-white{color:#fff}

/* hero */
.hero{padding:64px 0 56px;text-align:center}
.eyebrow{
  font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--rose-hover);margin:0 0 18px;
}
.hero h1{
  font-size:clamp(2.1rem,6vw,3.6rem);line-height:1.08;font-weight:800;
  letter-spacing:-.03em;margin:0 0 18px;
}
.hero h1 em{font-style:italic;font-weight:400;color:var(--rose-hover)}
.hero .sub{
  max-width:560px;margin:0 auto 28px;font-size:15px;color:var(--stone-6);
}
.hero-cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.trust-row{
  display:flex;gap:18px;justify-content:center;flex-wrap:wrap;margin-top:26px;
  font-size:11px;font-weight:600;color:var(--stone-6);
}

/* buttons */
.pill-btn{
  transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease;
  border:none;cursor:pointer;text-decoration:none;display:inline-block;
  font-family:inherit;
}
.pill-btn:hover{transform:translateY(-2px);box-shadow:0 10px 22px -6px rgba(232,175,175,.55)}
.btn-primary{
  padding:14px 32px;background:var(--rose);color:#fff;font-weight:700;font-size:14px;
  border-radius:999px;box-shadow:0 6px 16px -6px rgba(232,175,175,.6);
}
.btn-primary:hover{background:var(--rose-dark)}
.btn-ghost{
  padding:14px 32px;background:#fff;color:var(--ink);font-weight:700;font-size:14px;
  border-radius:999px;border:1px solid var(--line);
}

/* sections */
.section{padding:56px 0;text-align:center}
.section-alt{background:var(--pink-soft)}
.kicker{
  font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;
  color:var(--rose-hover);margin:0 0 10px;
}
.h2{font-size:clamp(1.5rem,4vw,2.1rem);font-weight:800;letter-spacing:-.02em;margin:0 0 12px}
.lede{max-width:520px;margin:0 auto;font-size:14px;color:var(--stone-6)}

/* cards + tables */
.card{background:#fff;border-radius:24px;padding:24px;box-shadow:0 12px 30px -18px rgba(0,0,0,.2);border:1px solid var(--line)}
.grid{display:grid;gap:20px}
.gap-5{gap:20px}.gap-3{gap:12px}.gap-2{gap:8px}.mt-6{margin-top:24px}.mt-8{margin-top:32px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-5{margin-top:20px}.mb-3{margin-bottom:12px}.pt-2{padding-top:8px}
.grid-cols-2{grid-template-columns:repeat(2,1fr)}
.space-y-1>*+*{margin-top:4px}.space-y-2>*+*{margin-top:8px}
.space-y-3>*+*{margin-top:12px}.space-y-4>*+*{margin-top:16px}
@media(min-width:768px){
  .md\:grid-cols-2{grid-template-columns:repeat(2,1fr)}
  .md\:col-span-2{grid-column:span 2}
}
@media(min-width:640px){.sm\:grid-cols-2{grid-template-columns:repeat(2,1fr)}.hidden.sm\:inline{display:inline !important}}
@media(max-width:639px){.hidden.sm\:inline{display:none !important}}

.bg-white{background:#fff}
.rounded-3xl{border-radius:24px}.rounded-2xl{border-radius:16px}.rounded-xl{border-radius:12px}
.rounded-l-xl{border-top-left-radius:12px;border-bottom-left-radius:12px}
.rounded-r-xl{border-top-right-radius:12px;border-bottom-right-radius:12px}
.rounded-full{border-radius:999px}
.p-6{padding:24px}.p-4{padding:16px}.p-3{padding:12px}.py-3{padding:12px 0}.py-2{padding:8px 0}
.px-3{padding-left:12px;padding-right:12px}.px-5{padding-left:20px;padding-right:20px}
.px-8{padding-left:32px;padding-right:32px}.py-4{padding-top:16px;padding-bottom:16px}
.pb-3{padding-bottom:12px}
.shadow-xl{box-shadow:0 14px 34px -20px rgba(0,0,0,.22)}
.shadow-lg{box-shadow:0 10px 24px -12px rgba(232,175,175,.6)}
.shadow-sm{box-shadow:0 2px 6px -3px rgba(0,0,0,.12)}
.border{border:1px solid var(--line)}
.border-rose-100{border-color:var(--line)}
.border-rose-200{border-color:#f0d0d0}
.border-stone-200\/60{border-color:rgba(214,211,209,.6)}
.border-b{border-bottom:1px solid var(--line)}
.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}
.items-start{align-items:flex-start}.justify-between{justify-content:space-between}
.w-full{width:100%}.block{display:block}.inline-block{display:inline-block}
.leading-none{line-height:1}.leading-relaxed{line-height:1.65}
.tracking-tight{letter-spacing:-.02em}
.font-bold{font-weight:700}.font-extrabold{font-weight:800}
.font-semibold{font-weight:600}.font-medium{font-weight:500}.font-normal{font-weight:400}
.text-lg{font-size:17px}.text-base{font-size:15px}.text-sm{font-size:13.5px}
.text-xs{font-size:12px}.text-\[11px\]{font-size:11px}.text-\[10px\]{font-size:10px}
.text-xl{font-size:20px}
.text-stone-900{color:var(--ink)}.text-stone-800{color:var(--stone)}
.text-stone-600{color:var(--stone-6)}.text-stone-500{color:var(--stone-5)}
.text-stone-700{color:#44403c}.text-stone-400{color:#a8a29e}
.text-rose-900{color:#7c3f3f}.text-rose-800{color:#8d4b4b}.text-rose-400{color:var(--rose)}
.text-white{color:#fff}
.bg-rose-50{background:var(--pink-light)}
.bg-rose-50\/70{background:rgba(255,245,245,.7)}
.bg-stone-50{background:#fafaf9}
.bg-stone-900{background:var(--ink)}
.opacity-80{opacity:.8}.opacity-60{opacity:.6}
.underline{text-decoration:underline}
.hover\:text-stone-900:hover{color:var(--ink)}
.hover\:bg-\[\#D49595\]:hover{background:var(--rose-dark)}
.bg-\[\#E8AFAF\]{background:var(--rose)}
.cursor-pointer{cursor:pointer}
.divide-y>*+*{border-top:1px solid #f5f5f4}
.divide-stone-100>*+*{border-top-color:#f5f5f4}
.border-collapse{border-collapse:collapse}
.transition-transform{transition:transform .2s ease}
.group-open\:rotate-45{display:inline-block}
details[open] .group-open\:rotate-45{transform:rotate(45deg)}
.list-none{list-style:none}
summary::-webkit-details-marker{display:none}

.price-table{width:100%;border-collapse:collapse}
.price-table th,.price-table td{padding:10px 12px}
.price-table th{font-size:11px}
.price-table td{font-size:12px}

/* steps */
.steps{display:flex;flex-direction:column;gap:14px;margin-top:26px;text-align:left}
.step{display:flex;gap:14px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;font-size:13px;color:var(--stone-6)}
.step strong{color:var(--ink)}
.step-n{
  flex:0 0 26px;height:26px;border-radius:999px;background:var(--rose);color:#fff;
  font-size:12px;font-weight:800;display:grid;place-items:center;
}

/* form */
.lbl{display:block;font-size:11px;font-weight:700;color:var(--stone-6);margin-bottom:6px}
.fld{
  width:100%;padding:12px;border:1px solid #e7e5e4;border-radius:12px;background:#fff;
  font-family:inherit;font-size:13px;font-weight:500;color:var(--ink);
}
.fld:focus{outline:2px solid var(--rose);outline-offset:1px;border-color:transparent}
textarea.fld{resize:vertical}
.check{display:flex;gap:10px;align-items:flex-start;font-size:11px;color:var(--stone-6);text-align:left}
.check input{margin-top:2px;flex:0 0 auto;accent-color:var(--rose)}

/* modal */
.modal-backdrop{
  display:none;position:fixed;inset:0;z-index:100;background:rgba(26,26,26,.55);
  padding:20px;align-items:center;justify-content:center;
}
.modal-backdrop.open{display:flex}
.modal-card{background:#fff;border-radius:24px;padding:26px;max-width:480px;width:100%;max-height:85vh;overflow:auto}

/* footer */
.footer{background:var(--ink);color:#fff;padding:40px 0}
.footer a{color:#fff}

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

/* location block */
.loc-grid{display:flex;flex-direction:column;gap:0}
.loc-row{
  display:flex;justify-content:space-between;align-items:flex-start;gap:16px;
  padding:14px 0;border-bottom:1px solid var(--line);
}
.loc-row:last-child{border-bottom:none}
.loc-k{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--rose-hover);flex:0 0 auto}
.loc-v{font-size:13px;font-weight:600;color:var(--ink);text-align:right}
.loc-v small{display:inline-block;font-weight:500;color:var(--stone-5);font-size:11px;margin-top:2px}
.loc-note{
  margin-top:18px;padding:16px;border-radius:14px;background:var(--pink-light);
  border:1px solid var(--line);font-size:12px;line-height:1.6;color:var(--stone-6);
}
.loc-note strong{display:block;color:var(--ink);margin-bottom:4px}

/* photo gallery */
.shots{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.shot{margin:0;border-radius:14px;overflow:hidden;background:var(--pink-light);aspect-ratio:4/5}
.shot img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
.shot:hover img{transform:scale(1.04)}
@media(max-width:480px){.shots{grid-template-columns:repeat(2,1fr)}}

.fineprint{
  margin:26px auto 0;max-width:640px;font-size:11px;font-weight:600;
  color:var(--stone-6);line-height:1.7;
}

/* policies */
.pol-grid{display:grid;gap:16px;margin-top:32px;text-align:left}
@media(min-width:768px){.pol-grid{grid-template-columns:repeat(2,1fr)}
  .pol-card:last-child{grid-column:1 / -1}}
.pol-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:22px}
.pol-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.pol-icon{
  flex:0 0 30px;height:30px;border-radius:9px;background:var(--pink-light);
  color:var(--rose-hover);display:grid;place-items:center;font-size:14px;
  border:1px solid var(--line);
}
.pol-head h3{margin:0;font-size:15px;font-weight:800;letter-spacing:-.01em;color:var(--ink)}
.pol-intro{margin:0 0 12px;font-size:12.5px;color:var(--stone-6);line-height:1.6}
.pol-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:9px}
.pol-list li{
  position:relative;padding-left:18px;font-size:12px;line-height:1.6;color:var(--stone-6);
}
.pol-list li::before{
  content:"";position:absolute;left:0;top:7px;width:6px;height:6px;border-radius:50%;
  background:var(--rose);
}
.pol-close{
  margin:14px 0 0;padding:12px;border-radius:12px;background:var(--pink-light);
  border:1px solid var(--line);font-size:12px;line-height:1.6;color:var(--stone-6);
  font-style:italic;
}

/* e-Transfer deposit panel */
.dep-panel{
  margin-top:18px;padding:18px;border-radius:18px;background:var(--pink-light);
  border:1px solid var(--line);text-align:left;
}
.dep-head{display:flex;gap:12px;align-items:flex-start;margin-bottom:14px}
.dep-step{
  flex:0 0 26px;height:26px;border-radius:999px;background:var(--rose);color:#fff;
  font-size:12px;font-weight:800;display:grid;place-items:center;
}
.dep-head strong{display:block;font-size:14px;color:var(--ink)}
.dep-head small{display:block;font-size:11.5px;color:var(--stone-6);margin-top:2px;line-height:1.5}
.dep-fields{display:flex;flex-direction:column;gap:8px}
.dep-field{display:flex;flex-direction:column;gap:4px}
.dep-k{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--rose-hover)}
.dep-v{font-size:13px;font-weight:700;color:var(--ink);word-break:break-word;text-align:left}
.dep-plain{padding:10px 12px;background:#fff;border:1px solid var(--line);border-radius:10px}
.dep-copy{
  display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;
  padding:10px 12px;background:#fff;border:1px solid var(--line);border-radius:10px;
  cursor:pointer;font-family:inherit;transition:border-color .15s ease,background .15s ease;
}
.dep-copy:hover{border-color:var(--rose)}
.dep-copy.is-copied{border-color:var(--rose);background:#fff8f8}
.dep-cta{
  flex:0 0 auto;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
  color:var(--rose-hover);
}
.dep-foot{margin:14px 0 0;font-size:11.5px;line-height:1.6;color:var(--stone-6)}
.dep-foot a{color:var(--rose-hover);font-weight:700}

/* embedded form */
.tally-frame{border:0;width:100%;min-height:480px;background:transparent;display:block}
.form-foot{margin:12px 0 0;font-size:11.5px;line-height:1.6;color:var(--stone-5);text-align:center}

/* --- fixes: utilities used in markup but previously undefined --- */
.gap-4{gap:16px}
.py-1{padding-top:4px;padding-bottom:4px}
.scroll-smooth{scroll-behavior:smooth}

/* booking reference code */
.dep-k em{font-style:normal;color:var(--rose-hover);font-weight:800}
.dep-copy.is-ref .dep-v{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.04em}
.dep-copy.is-ref:not(.is-live) .dep-v{
  font-family:inherit;letter-spacing:0;color:var(--stone-5);font-weight:500;font-size:12px;
}
.dep-copy.is-live{border-color:var(--rose);background:#fffafa}
.dep-copy.is-live .dep-v{color:var(--rose-hover);font-weight:800}
.dep-hint{display:block;margin-top:6px;font-size:11px;line-height:1.5;color:var(--stone-5)}

/* social icons */
.social{
  display:inline-flex;align-items:center;justify-content:center;
  width:34px;height:34px;border-radius:999px;
  transition:background .18s ease,color .18s ease,transform .18s ease;
}
.social svg{display:block}
.social-nav{color:var(--stone-6)}
.nav-bar a.social-nav{color:var(--stone-6)}
.nav-bar a.social-nav:hover{color:var(--rose-hover);background:rgba(255,255,255,.6)}
.social-row{display:flex;gap:6px;justify-content:center;margin-top:4px}
.footer a.social-foot{color:#fff;opacity:.85}
.footer a.social-foot:hover{opacity:1;background:rgba(255,255,255,.12);transform:translateY(-1px)}
@media(max-width:400px){.social-nav{width:30px;height:30px}}

/* soft booking gate */
.gate{
  padding:20px;border-radius:18px;background:var(--pink-light);
  border:1px solid var(--line);text-align:left;
}
.gate.is-done{display:none}
.gate-lead{margin:0 0 16px;font-size:13px;line-height:1.6;color:var(--stone-6)}
.gate-grid{display:flex;flex-direction:column;gap:0;margin-bottom:18px}
.gate-row{
  display:flex;gap:14px;align-items:baseline;
  padding:11px 0;border-bottom:1px solid var(--line);
}
.gate-row:last-child{border-bottom:none}
.gate-k{
  flex:0 0 104px;font-size:11px;font-weight:800;letter-spacing:.04em;
  text-transform:uppercase;color:var(--rose-hover);
}
.gate-v{flex:1;font-size:12.5px;line-height:1.55;color:var(--stone-6)}
.gate-btn{
  width:100%;padding:14px 24px;background:var(--rose);color:#fff;
  font-weight:700;font-size:13.5px;border-radius:999px;
  box-shadow:0 6px 16px -6px rgba(232,175,175,.6);
}
.gate-btn:hover{background:var(--rose-dark)}
.gate-foot{margin:12px 0 0;text-align:center;font-size:11.5px}
.gate-foot a{color:var(--stone-5);text-decoration:underline}
.gate-foot a:hover{color:var(--rose-hover)}
#bookingBody.gated{display:none}
@media(max-width:420px){
  .gate-row{flex-direction:column;gap:3px}
  .gate-k{flex:none}
}

/* about section */
.about-body{max-width:560px;margin:22px auto 0;text-align:left}
.about-body p{margin:0 0 14px;font-size:13.5px;line-height:1.72;color:var(--stone-6)}
.about-body p:last-child{margin-bottom:0}
.about-body strong{color:var(--ink);font-weight:700}
.about-marks{
  list-style:none;margin:24px 0 0;padding:0;
  display:flex;flex-wrap:wrap;gap:8px;justify-content:center;
}
.about-marks li{
  padding:8px 15px;border-radius:999px;background:#fff;border:1px solid var(--line);
  font-size:11.5px;font-weight:700;color:var(--rose-hover);white-space:nowrap;
}
.about-marks li::before{content:"\2713\00a0";font-weight:800}
@media(max-width:560px){
  .about-marks{flex-direction:column;align-items:center}
  .about-marks li{white-space:normal;text-align:center}
}
.lede-note{
  margin-top:10px;font-size:12.5px;color:var(--stone-6);
  background:var(--pink-light);border:1px solid var(--line);
  border-radius:12px;padding:11px 14px;max-width:560px;
}

/* hero trust row — longer lines need stacking on narrow screens */
@media(max-width:640px){
  .trust-row{flex-direction:column;gap:9px;align-items:center;text-align:center}
  .trust-row span{max-width:300px;line-height:1.45}
}

/* service card: subtitle, description, per-card notes */
.svc-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:12px;
  border-bottom:1px solid var(--line);padding-bottom:12px;
}
.svc-sub{margin:3px 0 0;font-size:11.5px;font-weight:600;color:var(--rose-hover)}
.svc-desc{margin:0;font-size:12.5px;line-height:1.6;color:var(--stone-6)}
.svc-note{
  margin:0;font-size:10.5px;line-height:1.55;color:var(--stone-5);
}
.svc-note + .svc-note{margin-top:6px}

/* pricing intro + closing notes */
.pricing-intro{max-width:560px;margin:14px auto 0}
.pricing-intro p{margin:0 0 9px;font-size:13px;line-height:1.65;color:var(--stone-6)}
.pricing-intro p:last-child{margin-bottom:0}
.fineprint{max-width:620px;margin:26px auto 0}
.fineprint p{margin:0 0 8px;font-size:11.5px;line-height:1.6;color:var(--stone-6)}
.fineprint p:last-child{margin-bottom:0}

/* add-on closing notes */
.addon-notes{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.addon-notes .svc-note{margin:0 0 6px}
.addon-notes .svc-note:last-child{margin-bottom:0}
