/*
Theme Name: Akoura Estate
Theme URI: https://akouraestate.com
Author: Khashayar Abedian
Description: Bespoke single-property marketing theme for The Akoura Estate, Akoursos, Paphos, Cyprus.
Version: 3.7
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: akoura-estate
*/

  :root{
    --stone:#dbdad3;
    --stone-deep:#c7c4ba;
    --ink:#0e192e;
    --ink-soft:#1a2740;
    --sea:#1f4a47;
    --bronze:#ad7f3e;
    --bronze-soft:#c79a5c;
    --olive:#5f6b45;
    --paper:#f4f3ef;
    --line: rgba(14,25,46,0.14);
    --line-light: rgba(246,242,233,0.2);
    --serif: 'Fraunces', serif;
    --sans: 'Karla', sans-serif;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--stone);
    color:var(--ink);
    font-family:var(--sans);
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%; display:block;}
  a{color:inherit; text-decoration:none;}
  .eyebrow{
    font-family:var(--sans);
    font-size:.72rem;
    letter-spacing:.22em;
    text-transform:uppercase;
    font-weight:600;
    color:var(--bronze);
  }
  .eyebrow.on-dark{color:var(--bronze-soft);}
  h1,h2,h3{font-family:var(--serif); font-weight:400; letter-spacing:-.01em;}
  .wrap{max-width:1180px; margin:0 auto; padding:0 32px;}

  /* NAV */
  header{
    position:fixed; top:0; left:0; right:0; z-index:100;
    padding:26px 0;
    background:linear-gradient(180deg, rgba(14,25,46,.5) 0%, rgba(14,25,46,.08) 100%);
    transition:background .4s ease, padding .4s ease, box-shadow .4s ease;
  }
  header .wrap{display:flex; align-items:center; justify-content:space-between; position:relative;}
  header.solid{
    background:rgba(14,25,46,0.92);
    backdrop-filter:blur(6px);
    padding:16px 0;
    box-shadow:0 1px 0 var(--line-light);
  }
  .nav-check{position:absolute; opacity:0; pointer-events:none;}

  /* BACK TO TOP — subtle, only visible once scrolled down, never overlaps
     body copy (bottom-right corner, well clear of text columns). */
  .back-to-top{
    position:fixed; right:22px; bottom:22px; z-index:80;
    width:42px; height:42px; border-radius:50%;
    background:rgba(14,25,46,.55); border:1px solid rgba(246,242,233,.28);
    color:var(--paper); display:flex; align-items:center; justify-content:center;
    cursor:pointer; backdrop-filter:blur(4px);
    opacity:0; visibility:hidden; transform:translateY(8px);
    transition:opacity .35s ease, transform .35s ease, visibility .35s, background .2s;
  }
  .back-to-top.visible{opacity:.7; visibility:visible; transform:translateY(0);}
  .back-to-top:hover{opacity:1; background:rgba(14,25,46,.8);}
  @media(max-width:640px){
    .back-to-top{right:14px; bottom:14px; width:38px; height:38px;}
  }
  @media print{ .back-to-top{display:none;} }

  /* Keep the fixed header below the WP admin toolbar for logged-in users —
     visitors never see the admin bar, so this only affects the dashboard/preview. */
  body.admin-bar header{top:32px;}
  @media screen and (max-width:782px){
    body.admin-bar header{top:46px;}
  }

  .logo-seal{
    background:var(--ink); display:flex; justify-content:center; padding:44px 0 34px;
  }
  .logo-seal img{width:220px; height:auto; opacity:.95;}
  .logo{
    display:flex; align-items:center; gap:10px;
  }
  .logo-mark{height:54px; width:auto; flex:0 0 auto; transition:transform .4s ease; filter:drop-shadow(0 1px 3px rgba(0,0,0,.45));}
  .logo:hover .logo-mark{transform:rotate(8deg);}
  .logo-word-img{height:33px; width:auto; flex:0 0 auto; filter:drop-shadow(0 1px 3px rgba(0,0,0,.45));}
  nav.links{display:flex; gap:24px; align-items:center;}
  nav.links a{
    font-size:.72rem; letter-spacing:.11em; text-transform:uppercase;
    color:var(--paper); opacity:.82; font-weight:500;
    padding-bottom:4px; border-bottom:1px solid transparent;
    transition:opacity .25s, border-color .25s;
  }
  nav.links a:hover{opacity:1; border-color:var(--bronze-soft);}
  .enquire-btn{
    border:1px solid var(--bronze-soft) !important; opacity:1 !important;
    padding:9px 20px; border-radius:2px;
  }
  .menu-toggle{display:none; background:none; border:none; color:var(--paper); font-size:1.5rem; cursor:pointer;}

  /* HERO */
  .hero{
    position:relative; height:100vh; min-height:640px;
    display:flex; align-items:flex-end;
    overflow:hidden;
  }
  .hero img{
    position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
    filter:saturate(1.03);
    animation:heroKenBurns 26s ease-in-out infinite alternate;
    transform-origin:center center;
  }
  @keyframes heroKenBurns{
    from{transform:scale(1);}
    to{transform:scale(1.09);}
  }
  @media (prefers-reduced-motion: reduce){
    .hero img{animation:none;}
  }
  .hero::after{
    content:''; position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(14,25,46,.15) 0%, rgba(14,25,46,.1) 40%, rgba(14,25,46,.78) 100%);
  }
  .hero-content{position:relative; z-index:2; width:100%; padding-bottom:88px;}
  .hero-content .eyebrow{color:var(--bronze-soft); margin-bottom:18px; display:block; animation:heroUp .9s cubic-bezier(.2,.7,.3,1) both; animation-delay:.05s;}
  .hero-content h1{
    color:var(--paper); font-size:clamp(2.6rem, 6vw, 5.2rem);
    line-height:1.02; max-width:920px; margin-bottom:22px;
    animation:heroUp 1s cubic-bezier(.2,.7,.3,1) both; animation-delay:.16s;
  }
  .hero-content h1 em{font-style:italic; color:var(--bronze-soft); font-weight:400;}
  .hero-content p.lede{
    color:rgba(246,242,233,0.82); font-size:1.05rem; max-width:480px; font-weight:400;
    animation:heroUp 1s cubic-bezier(.2,.7,.3,1) both; animation-delay:.32s;
  }
  @keyframes heroUp{from{opacity:0; transform:translateY(20px);} to{opacity:1; transform:translateY(0);}}

  /* Scroll reveal */
  .reveal{opacity:0; transform:translateY(28px); transition:opacity .8s cubic-bezier(.2,.7,.3,1), transform .8s cubic-bezier(.2,.7,.3,1);}
  .reveal.in-view{opacity:1; transform:translateY(0);}
  .scroll-cue{
    position:absolute; right:32px; bottom:36px; z-index:2;
    color:var(--paper); opacity:.65; font-size:.7rem; letter-spacing:.2em; text-transform:uppercase;
    display:flex; align-items:center; gap:10px;
  }
  .scroll-cue::after{content:''; width:1px; height:34px; background:var(--paper); opacity:.6;}

  /* FULL-BLEED BREATHER IMAGES — parallax: image stays fixed in place
     while the page scrolls over it, like passing a window. */
  .breather{position:relative; height:60vh; min-height:340px; max-height:640px; overflow:hidden;}
  .breather-parallax{
    background-size:cover;
    background-position:center;
    background-repeat:no-repeat;
    background-attachment:fixed;
  }
  /* iOS Safari + most mobile browsers don't support background-attachment:fixed
     reliably (it either breaks or hurts scroll performance), so fall back to a
     normal scrolling background there instead of a broken/janky effect. */
  @media(max-width:900px), (hover:none){
    .breather-parallax{background-attachment:scroll;}
  }
  @media(max-width:760px){ .breather{height:40vh; min-height:240px;} }

  /* ELEVATION MOTIF */
  .elevation{
    background:var(--ink); color:var(--paper); padding:56px 0 44px;
    position:relative;
  }
  .elevation .wrap{position:relative;}
  .elevation svg{width:100%; height:auto; display:block;}
  .elev-label{
    font-family:var(--sans); font-size:.66rem; letter-spacing:.14em; text-transform:uppercase;
    fill:rgba(246,242,233,.68);
  }
  .elev-figure{font-family:var(--serif); font-style:italic; fill:var(--bronze-soft);}
  .elevation-caption{
    text-align:center; margin-top:26px; font-size:.85rem; color:rgba(246,242,233,.6);
    letter-spacing:.02em;
  }

  section{padding:120px 0;}
  .section-head{max-width:640px; margin-bottom:56px;}
  .section-head .eyebrow{display:block; margin-bottom:16px;}
  .section-head h2{font-size:clamp(2rem, 3.4vw, 2.9rem); line-height:1.12;}

  /* ABOUT */
  .about-grid{
    display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center;
  }
  .about-text p{font-size:1.02rem; color:#3c372c; margin-bottom:20px; max-width:480px;}
  .about-img{position:relative; overflow:hidden; border-radius:2px;}
  .about-img img{border-radius:2px; transition:transform .7s cubic-bezier(.2,.7,.3,1); display:block;}
  .about-img:hover img{transform:scale(1.035);}
  .frame-tag{
    margin-top:16px; display:flex; align-items:baseline; gap:10px;
    font-size:.85rem; color:#6b6455;
  }
  .frame-tag b{font-family:var(--serif); font-size:1.15rem; font-weight:500; color:var(--bronze);}

  .stat-strip{
    display:grid; grid-template-columns:repeat(5,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line);
    margin-top:88px;
  }
  .stat-strip div{padding:26px 18px; text-align:center; border-left:1px solid var(--line);}
  .stat-strip div:first-child{border-left:none;}
  .stat-strip .num{font-family:var(--serif); font-size:1.9rem; color:var(--sea); display:block; margin-bottom:4px;}
  .stat-strip .lbl{font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:#6b6455;}

  /* INTERIOR JOURNEY */
  .journey{background:var(--paper);}
  .tabs{display:flex; gap:0; border-bottom:1px solid var(--line); margin-bottom:44px;}
  .tab-btn{
    font-family:var(--serif); font-size:1.3rem; font-style:italic; color:#9a917d;
    background:none; border:none; padding:14px 30px 14px 0; margin-right:30px;
    cursor:pointer; position:relative; transition:color .25s; display:inline-block;
  }
  .tab-btn.active,
  #tabGround:checked ~ .tabs label[for="tabGround"],
  #tabFirst:checked ~ .tabs label[for="tabFirst"]{color:var(--ink);}
  .tab-btn.active::after,
  #tabGround:checked ~ .tabs label[for="tabGround"]::after,
  #tabFirst:checked ~ .tabs label[for="tabFirst"]::after{
    content:''; position:absolute; left:0; right:30px; bottom:-1px; height:2px; background:var(--bronze);
  }
  .tab-radio{position:absolute; opacity:0; pointer-events:none;}
  .tab-panel{display:none; grid-template-columns:1.1fr .9fr; gap:60px;}
  #tabGround:checked ~ .tab-panel#ground,
  #tabFirst:checked ~ .tab-panel#first{display:grid; animation:fadeInTab .45s cubic-bezier(.2,.7,.3,1) both;}
  .tab-panel.active{display:grid; animation:fadeInTab .45s cubic-bezier(.2,.7,.3,1) both;}
  @keyframes fadeInTab{from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:translateY(0);}}
  .tab-panel img{border-radius:2px; height:420px; width:100%; object-fit:cover; transition:transform .6s ease;}
  .tab-panel:hover img{transform:scale(1.015);}
  .tab-copy p{color:#3c372c; margin-bottom:18px; max-width:460px;}
  .material-list{list-style:none; margin-top:26px; border-top:1px solid var(--line);}
  .material-list li{
    display:flex; justify-content:space-between; padding:12px 0; border-bottom:1px solid var(--line);
    font-size:.88rem;
  }
  .material-list li span:first-child{color:#6b6455; letter-spacing:.03em;}
  .material-list li span:last-child{color:var(--ink); font-weight:600;}

  /* OUTDOOR - dark */
  .outdoor{
    background:var(--ink); color:var(--paper);
    position:relative; overflow:hidden;
  }
  .outdoor .wrap{position:relative; z-index:2;}
  .outdoor-grid{display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:start;}
  .outdoor-text p{color:rgba(246,242,233,.78); margin-bottom:20px; max-width:480px;}
  .olive-card{
    margin-top:40px; border:1px solid var(--line-light); padding:26px 28px;
    display:flex; gap:20px; align-items:flex-start;
  }
  .olive-card .yrs{font-family:var(--serif); font-size:2.6rem; color:var(--bronze-soft); font-style:italic; line-height:1;}
  .olive-card p{font-size:.86rem; color:rgba(246,242,233,.68); margin:0; max-width:280px;}
  .outdoor-imgs{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
  .outdoor-imgs img{border-radius:2px; height:230px; object-fit:cover; width:100%; overflow:hidden; transition:transform .6s ease; cursor:default;}
  .outdoor-imgs img:hover{transform:scale(1.04);}
  .outdoor-imgs img:first-child{grid-column:1/3; height:280px;}

  /* GALLERY */
  .gallery-grid{
    display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:170px; gap:14px;
  }
  .gallery-grid a{grid-column:span 1; grid-row:span 1; overflow:hidden; border-radius:2px; position:relative; display:block;}
  .gallery-grid a:nth-child(1){grid-column:span 2; grid-row:span 2;}
  .gallery-grid img{width:100%; height:100%; object-fit:cover; transition:transform .6s ease;}
  .gallery-grid a:hover img{transform:scale(1.06);}

  /* LOCATION */
  .location{background:var(--stone-deep);}
  .loc-grid{display:grid; grid-template-columns:1fr 1fr; gap:70px;}
  .loc-list{list-style:none;}
  .loc-list li{
    display:flex; justify-content:space-between; align-items:baseline;
    padding:16px 0; border-bottom:1px solid var(--line);
    font-size:.95rem;
  }
  .loc-list li .place{font-weight:600;}
  .loc-list li .dist{font-family:var(--serif); font-style:italic; color:var(--sea); font-size:1.1rem;}
  .loc-note{
    background:var(--ink); color:var(--paper); padding:36px 34px; align-self:start;
  }
  .loc-note .eyebrow{margin-bottom:14px; display:block;}
  .loc-note p{color:rgba(246,242,233,.78); font-size:.94rem;}

  /* CONTACT */
  footer{background:var(--ink); color:var(--paper); padding:100px 0 40px;}
  .contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:70px; padding-bottom:70px; border-bottom:1px solid var(--line-light);}
  .footer-logo{display:flex; align-items:center; justify-content:center; padding:36px 0 8px; opacity:.62;}
  .footer-logo-word{height:32px; width:auto; filter:drop-shadow(0 1px 3px rgba(0,0,0,.4));}
  .contact-info h2{color:var(--paper); font-size:clamp(1.9rem,3vw,2.6rem); margin-bottom:20px; max-width:420px;}
  .contact-info p{color:rgba(246,242,233,.7); max-width:400px; margin-bottom:28px;}
  .contact-detail{margin-bottom:14px; font-size:.92rem; color:rgba(246,242,233,.85);}
  .contact-detail b{color:var(--bronze-soft); font-weight:600; display:inline-block; width:90px;}
  .price-tag{font-family:var(--serif); font-style:italic; font-size:1.5rem; color:var(--bronze-soft); margin-top:22px;}
  .price-label{
    display:block; font-family:var(--sans); font-style:normal; font-weight:600;
    font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; color:var(--bronze-soft);
    opacity:.75; margin-bottom:6px;
  }
  form{display:flex; flex-direction:column; gap:16px;}
  form input, form textarea{
    background:transparent; border:none; border-bottom:1px solid var(--line-light);
    color:var(--paper); font-family:var(--sans); font-size:.95rem; padding:10px 2px;
    outline:none;
  }
  form input::placeholder, form textarea::placeholder{color:rgba(246,242,233,.42);}
  form input:focus, form textarea:focus{border-color:var(--bronze-soft);}
  form button{
    margin-top:10px; align-self:flex-start; background:var(--bronze); color:var(--ink);
    border:none; padding:13px 30px; font-size:.78rem; letter-spacing:.14em; text-transform:uppercase;
    font-weight:700; cursor:pointer; border-radius:2px; transition:background .25s;
  }
  form button:hover{background:var(--bronze-soft);}
  .foot-bottom{
    display:flex; justify-content:space-between; align-items:center; padding-top:32px;
    font-size:.76rem; color:rgba(246,242,233,.45); letter-spacing:.02em; flex-wrap:wrap; gap:12px;
  }

  @media(max-width:860px){
    nav.links{
      display:flex; position:absolute; top:100%; left:0; right:0;
      flex-direction:column; align-items:flex-start; gap:6px;
      background:rgba(14,25,46,0.97); backdrop-filter:blur(6px);
      padding:18px 32px 26px; margin:0;
      opacity:0; visibility:hidden; transform:translateY(-10px);
      transition:opacity .3s ease, transform .3s ease, visibility .3s;
      pointer-events:none;
    }
    nav.links a{width:100%; padding:10px 0; border-bottom:1px solid var(--line-light);}
    nav.links a.enquire-btn{border:1px solid var(--bronze-soft) !important; text-align:center; margin-top:10px;}
    nav.links.open, .nav-check:checked ~ nav.links{opacity:1; visibility:visible; transform:translateY(0); pointer-events:auto;}
    .menu-toggle{display:block; transition:transform .3s ease; cursor:pointer;}
    .menu-toggle.open, .nav-check:checked ~ .menu-toggle{transform:rotate(90deg);}
    .about-grid, .outdoor-grid, .loc-grid, .contact-grid{grid-template-columns:1fr;}
    #tabGround:checked ~ .tab-panel#ground,
    #tabFirst:checked ~ .tab-panel#first{grid-template-columns:1fr;}
    .tab-panel img{height:300px;}
    .stat-strip{grid-template-columns:repeat(2,1fr);}
    .stat-strip div:nth-child(odd){border-left:none;}
    .gallery-grid{grid-template-columns:repeat(2,1fr); grid-auto-rows:150px;}
    .gallery-grid a:nth-child(1){grid-column:span 2;}
    section{padding:76px 0;}
    .about-img .frame-tag{margin-top:14px;}
  }

  @media(max-width:640px){
    .hero{min-height:560px;}
    .hero-content{padding-bottom:64px;}
    .stat-strip{grid-template-columns:1fr 1fr;}
    .elevation{padding:40px 0 32px;}
    .olive-card{flex-direction:column; gap:10px;}
    .outdoor-imgs img{height:170px;}
    .outdoor-imgs img:first-child{height:190px;}
    .loc-list li{flex-direction:column; align-items:flex-start; gap:2px;}
  }

  @media(max-width:480px){
    .wrap{padding:0 20px;}
    section{padding:56px 0;}
    .gallery-grid{grid-template-columns:1fr; grid-auto-rows:220px;}
    .gallery-grid a:nth-child(1){grid-column:1; grid-row:span 1;}
    .stat-strip{grid-template-columns:1fr;}
    .stat-strip div{border-left:none !important; border-top:1px solid var(--line);}
    .stat-strip div:first-child{border-top:none;}
    .contact-grid{gap:44px;}
    form button{width:100%;}
  }

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