  :root{
    --maroon-black:#1c0a0d;
    --maroon-deep:#33141a;
    --maroon-card:#3f1a21;
    --gold:#c6a15b;
    --gold-bright:#e2c483;
    --ivory:#f4ecdf;
    --ivory-dim:#cfc0ab;
    --rose:#c9857a;
    --line:rgba(198,161,91,0.25);
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--maroon-black);
    color:var(--ivory);
    font-family:'Jost',sans-serif;
    font-weight:300;
    line-height:1.6;
    overflow-x:hidden;
  }
  h1,h2,h3,.serif{ font-family:'Cormorant Garamond', serif; font-weight:500; letter-spacing:0.01em;}
  .eyebrow{
    font-family:'Jost',sans-serif;
    text-transform:uppercase;
    letter-spacing:0.28em;
    font-size:0.72rem;
    color:var(--gold);
    font-weight:500;
  }
  a{color:inherit; text-decoration:none;}
  img{max-width:100%; display:block;}
  .wrap{max-width:1140px; margin:0 auto; padding:0 28px;}
  section{position:relative; padding:110px 0;}

  /* ---------- ornamental divider (signature element) ---------- */
  .paisley-divider{ width:100%; display:flex; justify-content:center; margin:0 auto; opacity:0; transform:translateY(10px); transition:opacity 1s ease, transform 1s ease;}
  .paisley-divider.in-view{opacity:1; transform:translateY(0);}
  .paisley-divider svg path{
    stroke-dasharray:600;
    stroke-dashoffset:600;
    transition:stroke-dashoffset 1.6s ease;
  }
  .paisley-divider.in-view svg path{ stroke-dashoffset:0; }

  /* ---------- nav ---------- */
  header{
    position:fixed; top:0; left:0; right:0; z-index:100;
    background:rgba(28,10,13,0.88);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  .nav-inner{
    max-width:1140px; margin:0 auto; padding:18px 28px;
    display:flex; align-items:center; justify-content:space-between;
  }
  .logo{ font-family:'Cormorant Garamond', serif; font-size:1.5rem; letter-spacing:0.05em; color:var(--ivory);}
  .logo span{color:var(--gold);}
  nav ul{list-style:none; display:flex; gap:34px;}
  nav ul li a{
    font-size:0.82rem; text-transform:uppercase; letter-spacing:0.12em; color:var(--ivory-dim);
    transition:color .25s ease;
  }
  nav ul li a:hover{color:var(--gold);}
  .nav-cta{
    display:flex; align-items:center; gap:16px;
  }
  .btn{
    display:inline-block;
    padding:13px 28px;
    border-radius:2px;
    font-size:0.78rem;
    letter-spacing:0.12em;
    text-transform:uppercase;
    font-weight:500;
    transition:all .25s ease;
    cursor:pointer;
    border:1px solid var(--gold);
  }
  .btn-gold{ background:var(--gold); color:var(--maroon-black); }
  .btn-gold:hover{ background:var(--gold-bright); }
  .btn-ghost{ background:transparent; color:var(--gold); }
  .btn-ghost:hover{ background:rgba(198,161,91,0.1); }
  .menu-toggle{ display:none; background:none; border:none; color:var(--ivory); font-size:1.6rem; cursor:pointer;}

  /* ---------- hero ---------- */
  .hero{
    min-height:100vh;
    display:flex; align-items:center;
    padding-top:120px;
    background:
      radial-gradient(ellipse at 20% 0%, rgba(198,161,91,0.14), transparent 55%),
      radial-gradient(ellipse at 85% 100%, rgba(201,133,122,0.12), transparent 55%),
      var(--maroon-black);
    position:relative;
  }
  .hero::before{
    content:"";
    position:absolute; inset:0;
    background-image:
      linear-gradient(rgba(198,161,91,0.05) 1px, transparent 1px),
      linear-gradient(90deg, rgba(198,161,91,0.05) 1px, transparent 1px);
    background-size:64px 64px;
    mask-image:radial-gradient(ellipse at 30% 40%, black, transparent 70%);
    pointer-events:none;
  }
  .hero-grid{
    display:grid; grid-template-columns:1.1fr 0.9fr; gap:60px; align-items:center;
    position:relative; z-index:2;
  }
  .hero h1{
    font-size:clamp(2.6rem, 5.4vw, 4.4rem);
    line-height:1.05;
    color:var(--ivory);
    margin:18px 0 22px;
  }
  .hero h1 em{ font-style:italic; color:var(--gold-bright); }
  .hero p.lede{
    font-size:1.08rem; color:var(--ivory-dim); max-width:480px; margin-bottom:36px;
  }
  .hero-actions{ display:flex; gap:16px; flex-wrap:wrap; }
  .hero-frame{
    position:relative;
    aspect-ratio:4/5;
    border:1px solid var(--line);
    border-radius:2px;
    background:linear-gradient(160deg, var(--maroon-card), var(--maroon-deep));
    display:flex; align-items:flex-end; justify-content:center;
    overflow:hidden;
  }
  .hero-frame img{
    position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
    filter:saturate(0.96) contrast(1.03);
  }
  .hero-frame::after{
    content:"";
    position:absolute; inset:0;
    background:linear-gradient(0deg, rgba(28,10,13,0.85) 0%, rgba(28,10,13,0.05) 45%, transparent 70%);
  }
  .hero-frame .center-mark{
    position:relative; z-index:2; font-family:'Cormorant Garamond',serif; font-style:italic;
    color:var(--gold-bright); font-size:1.05rem; text-align:center; letter-spacing:0.04em;
    padding:26px 22px 22px;
  }
  .hero-stats{
    display:flex; gap:40px; margin-top:52px; flex-wrap:wrap;
  }
  .hero-stats div{ border-left:1px solid var(--line); padding-left:16px; }
  .hero-stats .num{ font-family:'Cormorant Garamond',serif; font-size:2rem; color:var(--gold-bright);}
  .hero-stats .label{ font-size:0.75rem; color:var(--ivory-dim); text-transform:uppercase; letter-spacing:0.1em;}

  /* ---------- section heading ---------- */
  .section-head{ text-align:center; max-width:680px; margin:0 auto 56px; }
  .section-head h2{ font-size:clamp(2rem,3.6vw,2.9rem); margin-top:14px; color:var(--ivory);}
  .section-head p{ color:var(--ivory-dim); margin-top:16px; font-size:1rem;}

  /* ---------- about ---------- */
  .about-grid{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:64px; align-items:center;}
  .about-portrait{
    aspect-ratio:3/4; border-radius:2px; border:1px solid var(--line);
    background:linear-gradient(155deg,var(--maroon-card),var(--maroon-black));
    position:relative; overflow:hidden;
  }
  .about-portrait img{
    width:100%; height:100%; object-fit:cover; object-position:center 20%;
    filter:saturate(0.92) contrast(1.04);
  }
  .about-portrait .cap{
    position:absolute; left:0; right:0; bottom:0;
    background:linear-gradient(0deg, rgba(28,10,13,0.92), transparent);
    padding:26px 22px 16px;
  }
  .about-portrait .cap .name{ font-family:'Cormorant Garamond',serif; font-size:1.2rem; color:var(--ivory);}
  .about-portrait .cap .role{ font-size:0.72rem; text-transform:uppercase; letter-spacing:0.12em; color:var(--gold);}
  .about-copy h3{ font-size:1.9rem; color:var(--ivory); margin-bottom:18px;}
  .about-copy p{ color:var(--ivory-dim); margin-bottom:16px; }
  .about-copy strong{ color:var(--gold-bright); font-weight:500;}
  .feature-list{ list-style:none; margin-top:28px; display:grid; gap:14px; }
  .feature-list li{ display:flex; gap:12px; align-items:flex-start; color:var(--ivory-dim); font-size:0.95rem;}
  .feature-list li::before{ content:"◆"; color:var(--gold); font-size:0.6rem; margin-top:6px;}

  /* ---------- ceremonies ---------- */
  .ceremony-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
  .ceremony-card{
    background:var(--maroon-black); padding:36px 26px; text-align:center;
    transition:background .3s ease;
  }
  .ceremony-card:hover{ background:var(--maroon-deep);}
  .ceremony-card .glyph{ font-size:1.8rem; color:var(--gold); margin-bottom:16px; font-family:'Cormorant Garamond',serif;}
  .ceremony-card h4{ font-family:'Cormorant Garamond',serif; font-size:1.3rem; color:var(--ivory); margin-bottom:10px;}
  .ceremony-card p{ font-size:0.86rem; color:var(--ivory-dim);}

  /* ---------- gallery (JS masonry, gap-free) ---------- */
  .gallery-grid{
    position:relative;
    width:100%;
  }
  .gallery-grid a{
    position:absolute;
    display:block;
    overflow:hidden;
    opacity:0;
    transition:opacity .4s ease;
  }
  .gallery-grid a.placed{ opacity:1; }
  .gallery-grid img{
    width:100%; height:100%; display:block;
    object-fit:cover;
    filter:saturate(0.95) contrast(1.03);
    transition:transform .6s ease, filter .4s ease;
  }
  .gallery-grid a:hover img{ transform:scale(1.05); filter:saturate(1.05) contrast(1.05); }
  .gallery-grid a::after{
    content:"";
    position:absolute; inset:0;
    box-shadow:inset 0 0 0 1px var(--line);
    pointer-events:none;
  }

  /* ---------- packages ---------- */
  .tabs{ display:flex; justify-content:center; gap:10px; margin-bottom:48px; flex-wrap:wrap;}
  .tab-btn{
    padding:11px 26px; border:1px solid var(--line); background:transparent; color:var(--ivory-dim);
    font-family:'Jost',sans-serif; font-size:0.8rem; letter-spacing:0.1em; text-transform:uppercase;
    cursor:pointer; border-radius:2px; transition:all .25s ease;
  }
  .tab-btn.active{ background:var(--gold); color:var(--maroon-black); border-color:var(--gold);}
  .pkg-panel{ display:none; }
  .pkg-panel.active{ display:grid; }
  .pkg-grid{ grid-template-columns:repeat(3,1fr); gap:26px; }
  .pkg-card{
    border:1px solid var(--line); padding:40px 30px; background:linear-gradient(180deg, var(--maroon-card), var(--maroon-deep));
    display:flex; flex-direction:column; position:relative;
  }
  .pkg-card.featured{ border-color:var(--gold); }
  .pkg-card.featured::before{
    content:"Most Booked"; position:absolute; top:-1px; right:-1px;
    background:var(--gold); color:var(--maroon-black); font-size:0.68rem; letter-spacing:0.1em;
    text-transform:uppercase; padding:6px 14px; font-weight:500;
  }
  .pkg-card h4{ font-family:'Cormorant Garamond',serif; font-size:1.6rem; color:var(--ivory);}
  .pkg-card .price{ font-family:'Cormorant Garamond',serif; font-size:2.2rem; color:var(--gold-bright); margin:14px 0 20px;}
  .pkg-card .price span{ font-size:0.9rem; color:var(--ivory-dim); font-family:'Jost',sans-serif;}
  .pkg-card ul{ list-style:none; margin-bottom:30px; flex-grow:1;}
  .pkg-card ul li{ padding:9px 0; border-top:1px solid var(--line); color:var(--ivory-dim); font-size:0.9rem;}
  .pkg-card ul li:first-child{ border-top:none;}

  /* ---------- FAQ ---------- */
  .faq-list{ max-width:820px; margin:0 auto; display:grid; gap:1px; background:var(--line); border:1px solid var(--line);}
  .faq-item{ background:var(--maroon-black); padding:28px 30px;}
  .faq-item h3{ font-family:'Cormorant Garamond',serif; font-size:1.35rem; color:var(--ivory); margin-bottom:10px;}
  .faq-item p{ color:var(--ivory-dim); font-size:0.95rem; line-height:1.7;}

  /* ---------- testimonial ---------- */
  .testimonial{ text-align:center; max-width:760px; margin:0 auto;}
  .testimonial blockquote{
    font-family:'Cormorant Garamond',serif; font-style:italic; font-size:1.7rem; line-height:1.5; color:var(--ivory);
  }
  .testimonial cite{ display:block; margin-top:26px; font-family:'Jost',sans-serif; font-style:normal; text-transform:uppercase; letter-spacing:0.14em; font-size:0.78rem; color:var(--gold);}

  /* ---------- coverage ---------- */
  .coverage-grid{ display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center;}
  .coverage-map{
    aspect-ratio:1/1; border:1px solid var(--line); border-radius:2px; position:relative;
    background:radial-gradient(circle at 40% 35%, rgba(198,161,91,0.14), transparent 60%), var(--maroon-card);
  }
  .coverage-map .dot{ position:absolute; width:9px; height:9px; border-radius:50%; background:var(--gold-bright); box-shadow:0 0 0 6px rgba(198,161,91,0.15);}
  .coverage-map .dot.london{ top:38%; left:32%; }
  .coverage-map .dot.kent{ top:58%; left:62%; }
  .coverage-map .tag{ position:absolute; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.1em; color:var(--ivory-dim);}
  .coverage-map .tag.london{ top:32%; left:20%; }
  .coverage-map .tag.kent{ top:63%; left:56%; }
  .coverage-copy ul{ list-style:none; margin-top:24px; display:grid; gap:12px;}
  .coverage-copy ul li{ color:var(--ivory-dim); display:flex; gap:10px;}
  .coverage-copy ul li::before{ content:"—"; color:var(--gold);}

  /* ---------- lead form ---------- */
  .contact-section{
    background:linear-gradient(180deg, var(--maroon-deep), var(--maroon-black));
    border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  }
  .contact-grid{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:60px;}
  .contact-info h3{ font-family:'Cormorant Garamond',serif; font-size:2rem; margin-bottom:18px; color:var(--ivory);}
  .contact-info p{ color:var(--ivory-dim); margin-bottom:26px;}
  .contact-links{ display:grid; gap:16px; margin-bottom:32px;}
  .contact-links a{ display:flex; align-items:center; gap:12px; color:var(--ivory); font-size:1rem; transition:color .2s ease;}
  .contact-links a:hover{ color:var(--gold-bright);}
  .contact-links .ic{ color:var(--gold); font-family:'Cormorant Garamond',serif; font-size:1.2rem; width:22px;}
  form{ display:grid; gap:18px;}
  .form-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px;}
  label{ display:block; font-size:0.75rem; text-transform:uppercase; letter-spacing:0.1em; color:var(--ivory-dim); margin-bottom:8px;}
  input, select, textarea{
    width:100%; background:rgba(0,0,0,0.2); border:1px solid var(--line); color:var(--ivory);
    padding:13px 14px; font-family:'Jost',sans-serif; font-size:0.95rem; border-radius:2px; outline:none;
    transition:border-color .2s ease;
  }
  input:focus, select:focus, textarea:focus{ border-color:var(--gold); }
  select{ appearance:none; background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6'><path d='M0 0l5 6 5-6z' fill='%23c6a15b'/></svg>"); background-repeat:no-repeat; background-position:right 16px center; color-scheme:dark;}
  select option{ background:var(--maroon-card); color:var(--ivory); }
  select option:checked, select option:hover, select option:focus{ background:var(--gold); color:var(--maroon-black); }
  textarea{ resize:vertical; min-height:90px;}
  .submit-btn{ border:1px solid var(--gold); background:var(--gold); color:var(--maroon-black); padding:16px; font-size:0.85rem; letter-spacing:0.14em; text-transform:uppercase; font-weight:500; cursor:pointer; transition:background .2s ease;}
  .submit-btn:hover{ background:var(--gold-bright);}
  .submit-btn-alt{ background:transparent; color:var(--gold);}
  .submit-btn-alt:hover{ background:rgba(198,161,91,0.1);}
  .form-note{ font-size:0.8rem; color:var(--ivory-dim); text-align:center;}

  /* ---------- journal / stories ---------- */
  .story-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
  .story-card{
    background:var(--maroon-card); border:1px solid var(--line); padding:32px 28px;
    display:flex; flex-direction:column; cursor:pointer; transition:border-color .25s ease, transform .25s ease;
  }
  .story-card:hover{ border-color:var(--gold); transform:translateY(-3px); }
  .story-card .tag{ font-size:0.7rem; text-transform:uppercase; letter-spacing:0.14em; color:var(--gold); margin-bottom:14px;}
  .story-card h3{ font-family:'Cormorant Garamond',serif; font-size:1.5rem; color:var(--ivory); margin-bottom:12px; line-height:1.25;}
  .story-card .excerpt{ color:var(--ivory-dim); font-size:0.92rem; line-height:1.7;}
  .story-card .toggle{ margin-top:20px; font-size:0.76rem; text-transform:uppercase; letter-spacing:0.12em; color:var(--gold); display:inline-flex; align-items:center; gap:6px; transition:gap .2s ease;}
  .story-card:hover .toggle{ gap:10px; }
  .story-card .arrow{ display:inline-block; font-size:0.85rem;}

  /* ---------- google reviews ---------- */
  .reviews-band{ text-align:center; }
  .reviews-stars{ color:var(--gold-bright); font-size:1.4rem; letter-spacing:4px; margin-bottom:10px;}
  .reviews-band h2{ font-size:clamp(1.8rem,3.2vw,2.6rem); color:var(--ivory); margin-bottom:14px;}
  .reviews-band p{ color:var(--ivory-dim); max-width:620px; margin:0 auto 30px;}
  .review-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-bottom:36px; text-align:left;}
  .review-card{ background:var(--maroon-black); border:1px solid var(--line); padding:26px 24px;}
  .review-card .stars{ color:var(--gold-bright); font-size:0.85rem; letter-spacing:2px; margin-bottom:12px;}
  .review-card p{ color:var(--ivory-dim); font-size:0.9rem; line-height:1.7; margin-bottom:14px;}
  .review-card cite{ font-style:normal; font-size:0.8rem; color:var(--ivory); text-transform:uppercase; letter-spacing:0.08em;}

  /* ---------- footer ---------- */
  footer{ padding:50px 0 30px; text-align:center;}
  footer .logo{ justify-content:center; display:flex; margin-bottom:14px;}
  .footer-social{ display:flex; justify-content:center; gap:22px; margin:18px 0; }
  .footer-social a{ color:var(--gold); font-size:0.85rem; letter-spacing:0.08em; text-transform:uppercase;}
  footer .copyright{ color:var(--ivory-dim); font-size:0.78rem; margin-top:18px;}

  /* ---------- reveal ---------- */
  .reveal{ opacity:0; transform:translateY(24px); transition:opacity .8s ease, transform .8s ease;}
  .reveal.in-view{ opacity:1; transform:translateY(0);}

  @media(max-width:860px){
    nav, .nav-cta .btn-ghost{ display:none;}
    .menu-toggle{ display:block;}
    .hero-grid, .about-grid, .coverage-grid, .contact-grid{ grid-template-columns:1fr;}
    .ceremony-grid{ grid-template-columns:repeat(2,1fr);}
    .pkg-grid{ grid-template-columns:1fr;}
    .form-row{ grid-template-columns:1fr;}
    .story-grid, .review-grid{ grid-template-columns:1fr;}
    section{ padding:76px 0;}
  }
  @media (prefers-reduced-motion: reduce){
    *{ transition:none !important; animation:none !important;}
  }

/* ---------- journal article pages ---------- */
.article-hero{ padding:150px 0 60px; }
.article-hero .tag{ font-size:0.72rem; text-transform:uppercase; letter-spacing:0.14em; color:var(--gold); margin-bottom:16px;}
.article-hero h1{ font-size:clamp(2.1rem,4.2vw,3.2rem); line-height:1.15; color:var(--ivory); margin-bottom:18px;}
.article-hero .dek{ color:var(--ivory-dim); font-size:1.05rem; max-width:700px;}
.breadcrumb{ font-size:0.78rem; text-transform:uppercase; letter-spacing:0.1em; color:var(--ivory-dim); margin-bottom:24px;}
.breadcrumb a{ color:var(--gold); }
.breadcrumb a:hover{ color:var(--gold-bright); }
.article-body{ max-width:760px; margin:0 auto; padding-bottom:40px;}
.article-body p{ color:var(--ivory-dim); font-size:1.02rem; line-height:1.85; margin-bottom:22px;}
.article-cta{
  max-width:760px; margin:0 auto; text-align:center; padding:44px 32px;
  border:1px solid var(--line); background:linear-gradient(180deg, var(--maroon-card), var(--maroon-deep));
}
.article-cta h3{ font-size:1.6rem; color:var(--ivory); margin-bottom:14px;}
.article-cta p{ color:var(--ivory-dim); margin-bottom:26px;}
.article-cta .hero-actions{ justify-content:center; }
.related-stories{ max-width:760px; margin:56px auto 0; border-top:1px solid var(--line); padding-top:36px;}
.related-stories .eyebrow{ margin-bottom:16px; }
.related-stories ul{ list-style:none; display:grid; gap:14px;}
.related-stories a{ color:var(--ivory); font-family:'Cormorant Garamond',serif; font-size:1.15rem; transition:color .2s ease;}
.related-stories a:hover{ color:var(--gold-bright);}

/* ---------- in-article figure/image ---------- */
.article-img{ margin:36px auto; max-width:440px; border:1px solid var(--line); background:var(--maroon-card); }
.article-img img{ width:100%; max-width:100%; height:auto; display:block; }
.article-img figcaption{ font-size:0.8rem; color:var(--ivory-dim); text-align:center; padding:14px 10px; font-style:italic; }
