/* coloursofme — site styles (original design, v3) */
:root {
  --ivory: #f8f4ee; --beige: #e8ddd0; --brown: #7a5840;
  --dark: #1a100a; --gold: #c8a870; --taupe: #b09880; --cream: #f2ece4;
}
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:'Jost',sans-serif; font-weight:300; color:var(--dark); overflow-x:hidden; background:var(--ivory); }
.cursor { position:fixed; width:10px; height:10px; background:var(--gold); border-radius:50%; pointer-events:none; z-index:9999; transform:translate(-50%,-50%); }
.cursor-ring { position:fixed; width:38px; height:38px; border:1px solid var(--gold); border-radius:50%; pointer-events:none; z-index:9998; transform:translate(-50%,-50%); opacity:0.5; }

nav { position:fixed; top:0; width:100%; z-index:200; display:flex; align-items:center; justify-content:space-between; padding:28px 60px; background:rgba(26,16,10,0.18); backdrop-filter:blur(12px); border-bottom:1px solid rgba(200,168,112,0.15); }
.nav-logo { font-family:'Cormorant Garamond',serif; font-size:28px; font-weight:300; letter-spacing:0.15em; color:#fff; text-decoration:none; }
.nav-links { display:flex; gap:40px; list-style:none; }
.nav-links a { font-size:11px; letter-spacing:0.25em; text-transform:uppercase; text-decoration:none; color:rgba(255,255,255,0.75); transition:color 0.3s; }
.nav-links a:hover { color:var(--gold); }
.nav-book { color:var(--gold) !important; border:1px solid var(--gold); padding:8px 20px; }

.hero { position:relative; overflow:hidden; display:flex; align-items:center; justify-content:center; background:#2a2a2a;
  width:100%; aspect-ratio:1400/1863; max-height:95vh; }
.hero-img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; object-position:center center; display:block; z-index:0; }
.hero-overlay { position:absolute; inset:0; z-index:1; background:linear-gradient(135deg,rgba(26,16,10,0.72) 0%,rgba(26,16,10,0.35) 60%,rgba(26,16,10,0.55) 100%); }
.hero-content { position:absolute; z-index:2; top:50%; left:50%; transform:translate(-50%,-50%); text-align:center; color:#fff; max-width:820px; padding:0 40px; width:100%; }
.hero-overline { font-size:11px; letter-spacing:0.4em; text-transform:uppercase; color:var(--gold); margin-bottom:32px; display:block; animation:fadeUp 0.8s 0.2s both; }
.hero-content h1 { font-family:'Cormorant Garamond',serif; font-size:clamp(48px,5vw,88px); font-weight:300; line-height:1.0; margin-bottom:28px; animation:fadeUp 0.8s 0.4s both; }
.hero-content h1 em { font-style:italic; color:var(--gold); }
.hero-content p { font-size:15px; line-height:1.9; color:rgba(255,255,255,0.7); max-width:460px; margin:0 auto 48px; animation:fadeUp 0.8s 0.6s both; }
.hero-btns { display:flex; gap:20px; justify-content:center; animation:fadeUp 0.8s 0.8s both; }
.btn-gold { display:inline-block; padding:16px 44px; background:var(--gold); color:var(--dark); text-decoration:none; font-size:11px; letter-spacing:0.28em; text-transform:uppercase; font-weight:400; transition:background 0.3s,transform 0.3s; }
.btn-gold:hover { background:#e8c890; transform:translateY(-2px); }
.btn-outline { display:inline-block; padding:16px 44px; border:1px solid rgba(255,255,255,0.5); color:#fff; text-decoration:none; font-size:11px; letter-spacing:0.28em; text-transform:uppercase; font-weight:400; transition:border-color 0.3s,transform 0.3s; }
.hero-scroll { display:none; }
.hero-scroll::after { content:''; width:1px; height:48px; background:linear-gradient(to bottom,rgba(200,168,112,0.6),transparent); }

.marquee { background:var(--dark); padding:16px 0; overflow:hidden; white-space:nowrap; }
.marquee-inner { display:inline-block; animation:marquee 24s linear infinite; }
.marquee-inner span { font-family:'Cormorant Garamond',serif; font-size:18px; font-style:italic; color:var(--gold); padding:0 36px; }
.marquee-inner .dot { color:var(--taupe); font-style:normal; font-size:12px; padding:0 4px; }
@keyframes marquee { 0%{transform:translateX(0);} 100%{transform:translateX(-50%);} }

.about { display:grid; grid-template-columns:1fr 1fr; min-height:85vh; }
.about-img { position:relative; overflow:hidden; }
.about-img img { width:100%; height:100%; object-fit:cover; object-position:center center; display:block; }
.about-img::after { content:''; position:absolute; inset:0; background:linear-gradient(to right,transparent 70%,var(--ivory) 100%); }
.about-text { background:var(--ivory); display:flex; align-items:center; padding:80px 72px; }
.about-inner { max-width:460px; }
.section-tag { font-size:10px; letter-spacing:0.4em; text-transform:uppercase; color:var(--gold); margin-bottom:28px; display:block; }
.about-inner h2 { font-family:'Cormorant Garamond',serif; font-size:clamp(38px,4vw,58px); font-weight:300; line-height:1.1; margin-bottom:28px; }
.about-inner h2 em { font-style:italic; color:var(--brown); }
.about-inner p { font-size:14px; line-height:1.9; color:var(--taupe); margin-bottom:16px; }
.about-stats { display:flex; gap:48px; margin-top:48px; padding-top:40px; border-top:1px solid var(--beige); }
.astat-num { font-family:'Cormorant Garamond',serif; font-size:52px; font-weight:300; color:var(--brown); line-height:1; }
.astat-lbl { font-size:10px; letter-spacing:0.2em; text-transform:uppercase; color:var(--taupe); margin-top:6px; }

.services { padding:100px 60px; background:var(--cream); }
.services-header { text-align:center; margin-bottom:72px; }
.services-header h2 { font-family:'Cormorant Garamond',serif; font-size:clamp(40px,5vw,68px); font-weight:300; line-height:1.1; }
.services-header h2 em { font-style:italic; color:var(--brown); }
.services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2px; }
.svc { background:var(--ivory); padding:52px 40px; position:relative; overflow:hidden; transition:background 0.4s; }
.svc:hover { background:var(--dark); }
.svc:hover .svc-title, .svc:hover .svc-desc { color:#fff; }
.svc:hover .svc-num { color:rgba(255,255,255,0.06); }
.svc-num { position:absolute; top:16px; right:24px; font-family:'Cormorant Garamond',serif; font-size:80px; font-weight:300; color:rgba(26,16,10,0.05); line-height:1; transition:color 0.4s; }
.svc-icon { font-size:30px; margin-bottom:24px; display:block; }
.svc-title { font-family:'Cormorant Garamond',serif; font-size:26px; font-weight:400; margin-bottom:14px; transition:color 0.4s; }
.svc-desc { font-size:13px; line-height:1.85; color:var(--taupe); transition:color 0.4s; }

.img-break { height:60vh; position:relative; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.img-break img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 70%; display:block; }
.img-break-overlay { position:absolute; inset:0; background:rgba(26,16,10,0.55); }
.img-break-text { position:relative; z-index:1; text-align:center; color:#fff; }
.img-break-text h2 { font-family:'Cormorant Garamond',serif; font-size:clamp(36px,5vw,72px); font-weight:300; line-height:1.1; margin-bottom:24px; }
.img-break-text h2 em { font-style:italic; color:var(--gold); }
.img-break-text p { font-size:13px; letter-spacing:0.25em; text-transform:uppercase; color:rgba(255,255,255,0.5); }

.testimonials { padding:100px 60px; background:var(--beige); }
.test-header { text-align:center; margin-bottom:64px; }
.test-header h2 { font-family:'Cormorant Garamond',serif; font-size:clamp(36px,4vw,56px); font-weight:300; }
.test-header h2 em { font-style:italic; color:var(--brown); }
.test-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.test-card { background:var(--ivory); padding:44px 36px; }
.test-stars { color:var(--gold); font-size:13px; letter-spacing:4px; margin-bottom:20px; }
.test-quote { font-family:'Cormorant Garamond',serif; font-size:19px; font-style:italic; line-height:1.65; margin-bottom:24px; }
.test-name { font-size:11px; letter-spacing:0.2em; text-transform:uppercase; color:var(--brown); }
.test-event { font-size:11px; color:var(--taupe); margin-top:4px; }

.cta { min-height:70vh; position:relative; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.cta img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center center; display:block; }
.cta-overlay { position:absolute; inset:0; background:rgba(26,16,10,0.65); }
.cta-inner { position:relative; z-index:1; text-align:center; color:#fff; max-width:700px; padding:0 40px; }
.cta-inner h2 { font-family:'Cormorant Garamond',serif; font-size:clamp(42px,6vw,80px); font-weight:300; line-height:1.05; margin-bottom:24px; }
.cta-inner h2 em { font-style:italic; color:var(--gold); }
.cta-inner p { font-size:14px; line-height:1.85; color:rgba(255,255,255,0.65); margin-bottom:48px; max-width:480px; margin-left:auto; margin-right:auto; }

.contact { padding:100px 60px; background:var(--dark); }
.contact-inner { max-width:780px; margin:0 auto; }
.contact-inner h2 { font-family:'Cormorant Garamond',serif; font-size:clamp(36px,4vw,56px); font-weight:300; color:#fff; margin-bottom:56px; text-align:center; }
.contact-inner h2 em { font-style:italic; color:var(--gold); }
.form-2col { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
.form-row { margin-bottom:16px; }
.form-row input,.form-row select,.form-row textarea { width:100%; background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.15); padding:18px 20px; color:#fff; font-family:'Jost',sans-serif; font-size:13px; font-weight:300; outline:none; transition:border-color 0.3s; }
.form-row input::placeholder,.form-row textarea::placeholder { color:rgba(255,255,255,0.3); }
.form-row input:focus,.form-row select:focus,.form-row textarea:focus { border-color:var(--gold); }
.form-row select option { background:var(--dark); }
.form-row textarea { height:110px; resize:none; }
.btn-submit { width:100%; padding:18px; background:var(--gold); color:var(--dark); border:none; font-family:'Jost',sans-serif; font-size:11px; letter-spacing:0.3em; text-transform:uppercase; font-weight:400; cursor:pointer; margin-top:8px; transition:background 0.3s,transform 0.3s; }
.btn-submit:hover { background:#e8c890; transform:translateY(-2px); }

footer { background:rgba(0,0,0,0.9); padding:60px 60px 32px; display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:48px; border-top:1px solid rgba(200,168,112,0.12); }
.foot-logo { font-family:'Cormorant Garamond',serif; font-size:28px; font-weight:300; color:#fff; letter-spacing:0.12em; margin-bottom:16px; display:block; }
.foot-desc { font-size:13px; line-height:1.85; color:rgba(255,255,255,0.35); max-width:260px; margin-bottom:24px; }
.foot-col h4 { font-size:10px; letter-spacing:0.3em; text-transform:uppercase; color:var(--gold); margin-bottom:20px; }
.foot-col ul { list-style:none; }
.foot-col li { margin-bottom:10px; }
.foot-col a { text-decoration:none; color:rgba(255,255,255,0.4); font-size:13px; transition:color 0.3s; }
.foot-col a:hover { color:#fff; }
.foot-bottom { background:rgba(0,0,0,0.9); padding:20px 60px; display:flex; justify-content:space-between; border-top:1px solid rgba(255,255,255,0.06); }
.foot-bottom p { font-size:11px; color:rgba(255,255,255,0.2); letter-spacing:0.08em; }

@keyframes fadeUp { from{opacity:0;transform:translateY(36px);} to{opacity:1;transform:translateY(0);} }
.reveal { opacity:0; transform:translateY(28px); transition:opacity 0.8s ease,transform 0.8s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }

/* ---------- Production additions ---------- */

/* Custom cursor only for mouse/trackpad users; touch devices keep native behaviour */
.cursor, .cursor-ring { display:none; }
@media (hover:hover) and (pointer:fine) {
  body.has-cursor { cursor:none; }
  body.has-cursor a, body.has-cursor button, body.has-cursor select, body.has-cursor input, body.has-cursor textarea { cursor:none; }
  body.has-cursor .cursor, body.has-cursor .cursor-ring { display:block; }
}

.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.hp-field { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

a:focus-visible, button:focus-visible { outline:1px solid var(--gold); outline-offset:4px; }

/* Mobile nav toggle (hidden on desktop) */
.nav-logo { position:relative; z-index:210; }
.nav-toggle { display:none; background:none; border:0; width:40px; height:40px; position:relative; z-index:210; }
.nav-toggle span { position:absolute; left:8px; right:8px; height:1px; background:#fff; transition:transform 0.3s, opacity 0.3s; }
.nav-toggle span:nth-child(1) { top:13px; } .nav-toggle span:nth-child(2) { top:20px; } .nav-toggle span:nth-child(3) { top:27px; }
nav.open .nav-toggle span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
nav.open .nav-toggle span:nth-child(2) { opacity:0; }
nav.open .nav-toggle span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* Form */
.form-row input, .form-row select, .form-row textarea { color-scheme:dark; border-radius:0; -webkit-appearance:none; appearance:none; }
.form-row select { background-image:linear-gradient(45deg,transparent 50%,var(--gold) 50%),linear-gradient(135deg,var(--gold) 50%,transparent 50%); background-position:calc(100% - 24px) 50%,calc(100% - 19px) 50%; background-size:5px 5px; background-repeat:no-repeat; }
.form-row select:invalid { color:rgba(255,255,255,0.3); }
.btn-submit:disabled { opacity:0.6; transform:none; }
.form-status { min-height:24px; margin-top:20px; text-align:center; font-size:13px; letter-spacing:0.05em; color:rgba(255,255,255,0.7); }
.form-status.ok { color:var(--gold); }
.form-status.err { color:#e8a090; }

.foot-bottom a { color:inherit; text-decoration:none; }

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .marquee-inner { animation:none; }
  .reveal { opacity:1; transform:none; transition:none; }
  .hero-overline, .hero-content h1, .hero-content p, .hero-btns { animation:none; }
}

/* Tablet */
@media (max-width:1024px) {
  nav { padding:22px 32px; }
  .nav-links { gap:24px; }
  .about-text { padding:64px 48px; }
  .services, .testimonials, .contact { padding:88px 32px; }
  .services-grid { grid-template-columns:repeat(2,1fr); }
  .test-grid { grid-template-columns:1fr; max-width:640px; margin:0 auto; }
  footer { grid-template-columns:1fr 1fr; padding:56px 32px 28px; }
  .foot-bottom { padding:20px 32px; }
}

/* Phone */
@media (max-width:760px) {
  nav { padding:16px 20px; }
  .nav-logo { font-size:22px; }
  .nav-toggle { display:block; }
  .nav-links { position:fixed; inset:0; height:100vh; height:100dvh; flex-direction:column; align-items:center; justify-content:center; gap:32px; background:rgba(26,16,10,0.97); opacity:0; visibility:hidden; transition:opacity 0.3s, visibility 0.3s; }
  nav.open .nav-links { opacity:1; visibility:visible; }
  .nav-links a { font-size:13px; }

  .hero { aspect-ratio:auto; min-height:100vh; min-height:100svh; max-height:none; }
  .hero-img { object-fit:cover; }
  .hero-content { padding:0 24px; }
  .hero-overline { font-size:10px; letter-spacing:0.3em; margin-bottom:24px; }
  .hero-content p { margin:0 auto 40px; font-size:14px; }
  .hero-btns { flex-direction:column; align-items:center; gap:14px; }
  .btn-gold, .btn-outline { padding:15px 36px; width:100%; max-width:300px; text-align:center; }

  .about { grid-template-columns:1fr; min-height:0; }
  .about-img { height:60vh; }
  .about-img::after { background:linear-gradient(to bottom,transparent 70%,var(--ivory) 100%); }
  .about-text { padding:56px 24px 72px; }
  .about-stats { gap:28px; flex-wrap:wrap; }
  .astat-num { font-size:42px; }

  .services, .testimonials, .contact { padding:72px 20px; }
  .services-header, .test-header { margin-bottom:48px; }
  .services-grid { grid-template-columns:1fr; }
  .svc { padding:40px 28px; }

  .img-break { height:auto; min-height:50vh; padding:80px 24px; }
  .cta { min-height:60vh; padding:80px 0; }
  .cta-inner { padding:0 24px; }

  .form-2col { grid-template-columns:1fr; gap:0; margin-bottom:0; }
  .contact-inner h2 { margin-bottom:40px; }

  footer { grid-template-columns:1fr; gap:36px; padding:56px 24px 28px; }
  .foot-bottom { flex-direction:column; gap:8px; padding:20px 24px; text-align:center; }
}
