/* rafina.info — Sunlit & vivid (mockup A, exact) */
:root{
  --blue:#2463eb; --blue-deep:#1b50c2; --blue-soft:#e7f0fe; --blue-tint:#eef5ff;
  --navy:#0b1b3a; --ink:#13233f; --muted:#5d6b82;
  --orange:#f97316; --orange-deep:#e15e08;
  --purple:#7c3aed; --teal:#0ea5a3; --coral:#ff5b4d; --sun:#f5b400; --green:#16a34a; --green-soft:#e7f6ec;
  --bg:#fff; --soft:#f5f8fd; --cream:#fbf6ec; --veil:#f4f9fe; --line:#e8edf5; --line-2:#dbe3ef;
  --r:16px; --r-lg:22px; --pill:999px; --bounce:cubic-bezier(.34,1.56,.64,1);
  --sh:0 12px 30px -18px rgba(11,40,90,.35); --sh-lg:0 26px 56px -28px rgba(11,40,90,.42); --sh-fl:0 16px 34px -16px rgba(11,40,90,.34);
  --sp:clamp(54px,7vw,88px); --maxw:1200px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Hanken Grotesk',system-ui,sans-serif;color:var(--ink);background:var(--bg);line-height:1.6;font-size:16px;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4{font-family:'Poppins',sans-serif;font-weight:800;line-height:1.1;letter-spacing:-.02em;color:var(--navy)}
img{max-width:100%;display:block}a{color:inherit}
:focus-visible{outline:3px solid rgba(36,99,235,.5);outline-offset:2px;border-radius:8px}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px}
.center{text-align:center}
.kicker{font-family:'Poppins';font-size:.76rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--blue);margin-bottom:11px}
h2.title{font-size:clamp(1.7rem,3.6vw,2.4rem)}
.lead{font-size:1.06rem;color:var(--muted)}
.sec-head{max-width:34em}

/* icon tints */
.tint-blue{background:var(--blue-soft);color:var(--blue)}
.tint-purple{background:#efe9fe;color:var(--purple)}
.tint-teal{background:#e2f6f4;color:var(--teal)}
.tint-orange{background:#fff0e2;color:var(--orange)}
.tint-green{background:var(--green-soft);color:var(--green)}
.tint-coral{background:#ffece9;color:var(--coral)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-weight:600;font-size:1rem;font-family:inherit;text-decoration:none;padding:13px 24px;border-radius:var(--pill);border:0;cursor:pointer;min-height:48px;transition:transform .22s var(--bounce),box-shadow .2s,background .2s,border-color .2s}
.btn:active{transform:scale(.98)}
.btn-blue{background:var(--blue);color:#fff;box-shadow:0 14px 26px -14px rgba(36,99,235,.7)}.btn-blue:hover{background:var(--blue-deep);transform:translateY(-3px)}
.btn-orange{background:var(--orange);color:#fff;box-shadow:0 14px 26px -14px rgba(249,115,22,.65)}.btn-orange:hover{background:var(--orange-deep);transform:translateY(-3px)}
.btn-purple{background:var(--purple);color:#fff}.btn-purple:hover{filter:brightness(1.08);transform:translateY(-3px)}
.btn-teal{background:var(--teal);color:#fff}.btn-teal:hover{filter:brightness(1.08);transform:translateY(-3px)}
.btn-line{background:#fff;color:var(--ink);border:1px solid var(--line-2)}.btn-line:hover{border-color:var(--blue);color:var(--blue);transform:translateY(-3px)}
.btn-ghost{background:rgba(255,255,255,.15);color:#fff;border:1px solid rgba(255,255,255,.4)}.btn-ghost:hover{background:rgba(255,255,255,.25);transform:translateY(-3px)}
.btn-duo{flex-direction:column;align-items:flex-start;gap:1px;padding:11px 22px;text-align:left;border-radius:14px;min-height:60px}
.btn-duo b{font-family:'Poppins';font-weight:700;font-size:1rem;display:flex;align-items:center;gap:8px}
.btn-duo small{font-weight:500;font-size:.8rem;opacity:.85}

/* nav */
.nav{position:sticky;top:0;z-index:60;background:#fff;border-bottom:1px solid var(--line)}
.nav .row{max-width:var(--maxw);margin:0 auto;padding:13px 22px;display:flex;align-items:center;gap:14px}
.logo{font-family:'Poppins';font-weight:800;font-size:1.34rem;color:var(--navy);text-decoration:none;letter-spacing:-.02em;white-space:nowrap}
.logo b{color:var(--blue);font-weight:800}
.navtoggle{display:none;margin-left:auto;background:none;border:0;cursor:pointer;color:var(--navy);padding:6px}
.nav-menu{display:flex;flex:1;align-items:center;gap:14px}
.nav-links{display:flex;align-items:center;gap:2px;margin:0 auto}
.nav-links>a,.has-drop>button{background:none;border:0;font-family:'Hanken Grotesk';color:var(--ink);font-weight:500;font-size:.95rem;padding:9px 12px;border-radius:10px;text-decoration:none;cursor:pointer;display:inline-flex;align-items:center;gap:5px}
.nav-links>a:hover,.has-drop>button:hover{background:var(--blue-tint);color:var(--blue)}
.has-drop{position:relative}
.drop{position:absolute;top:100%;left:0;min-width:210px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--sh-lg);padding:8px;display:none;flex-direction:column;z-index:70}
.has-drop:hover .drop,.has-drop:focus-within .drop{display:flex}
.drop a{padding:9px 12px;border-radius:9px;text-decoration:none;color:var(--ink);font-size:.92rem;font-weight:500}
.drop a:hover{background:var(--blue-tint);color:var(--blue)}
.nav-actions{display:flex;align-items:center;gap:10px}
.ask{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line-2);border-radius:var(--pill);padding:9px 15px;color:var(--ink);font-weight:600;font-size:.92rem;text-decoration:none}
.ask:hover{border-color:var(--blue);color:var(--blue)}
.cta{display:inline-flex;align-items:center;gap:7px;background:var(--blue);color:#fff;padding:10px 18px;border-radius:var(--pill);font-weight:600;font-size:.92rem;text-decoration:none}
.cta:hover{background:var(--blue-deep)}
@media(max-width:980px){
  .navtoggle{display:block}
  .nav-menu{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;padding:10px 14px 16px;box-shadow:var(--sh-lg);gap:2px}
  .nav.open .nav-menu{display:flex}
  .nav-links{flex-direction:column;margin:0;gap:0;align-items:stretch}
  .nav-links>a,.has-drop>button{width:100%;justify-content:flex-start}
  .drop{position:static;display:flex;box-shadow:none;border:0;padding:0 0 0 14px;min-width:0}
  .nav-actions{flex-direction:column;align-items:stretch;gap:8px;margin-top:8px}
  .ask,.cta{justify-content:center}
}

/* hero */
.hero{position:relative;overflow:hidden;background:#e8eff6}
.hero .bg{position:absolute;inset:0;z-index:0}
.hero .bg img{width:100%;height:100%;object-fit:cover;object-position:62% center}
.hero .veil{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(8,18,40,.68) 0%,rgba(8,18,40,.52) 26%,rgba(8,18,40,.22) 47%,rgba(8,18,40,0) 64%)}
.hero .wrap{position:relative;z-index:2}
.hero .grid{display:grid;grid-template-columns:1.05fr .95fr;gap:30px;align-items:center;min-height:clamp(430px,46vw,540px);padding:clamp(30px,3.5vw,48px) 0 clamp(58px,7vw,86px)}
.greet{font-family:'Poppins';font-weight:600;color:var(--orange);font-size:1.05rem;margin-bottom:10px;text-shadow:0 1px 10px rgba(8,18,40,.55)}
.hero h1{font-size:clamp(2.5rem,5.6vw,4rem);margin-bottom:14px;color:#fff;text-shadow:0 2px 22px rgba(8,18,40,.55)}
.hero h1 .accent{color:#82b4ff}
.hero .lead{font-size:1.12rem;max-width:22em;margin-bottom:24px;color:rgba(255,255,255,.95);font-weight:500;text-shadow:0 1px 12px rgba(8,18,40,.5)}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px}
.trust{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.tpill{display:inline-flex;align-items:center;gap:7px;background:#fff;border:1px solid var(--line);border-radius:var(--pill);padding:8px 14px;font-weight:600;font-size:.85rem;box-shadow:var(--sh)}
.tpill svg{flex:none}
.only-mob{display:none}
.lbl-m{display:none}
.hero-cards{display:flex;flex-direction:column;gap:13px;align-items:flex-end}
.hcard{width:308px;max-width:100%;display:flex;align-items:center;gap:12px;background:#fff;border-radius:16px;padding:14px 16px;box-shadow:var(--sh-fl);text-decoration:none;color:var(--ink);transition:transform .22s var(--bounce)}
.hcard:hover{transform:translateY(-3px)}
.hcard .i{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;flex:none}
.hcard .tx{flex:1}
.hcard .tx b{font-family:'Poppins';font-weight:700;font-size:.95rem;color:var(--navy);display:block;line-height:1.2}
.hcard .tx small{color:var(--muted);font-size:.79rem}
.hcard .chev{color:var(--blue);flex:none}
@media(max-width:920px){
  .hero .grid{grid-template-columns:1fr;min-height:0}
  .hero .veil{background:linear-gradient(180deg,rgba(8,18,40,.62) 0%,rgba(8,18,40,.46) 42%,rgba(8,18,40,.2) 70%,rgba(8,18,40,0) 92%)}
  .hero-cards{display:none}
  .hcard{width:auto}
  .only-desk{display:none}
  .only-mob{display:inline-flex}
  .lbl-d{display:none}
  .lbl-m{display:inline}
  .hero-actions{gap:10px}
  .hero-actions .btn{flex:1}
  .btn-duo{flex-direction:row;align-items:center;justify-content:center;min-height:50px;padding:13px 14px;border-radius:var(--pill);gap:8px}
  .btn-duo b{font-size:.95rem}
  .btn-duo small{display:none}
}

/* category bar */
.cattiles{display:grid;grid-template-columns:repeat(6,1fr);background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh);overflow:hidden;margin-top:-46px;position:relative;z-index:5}
.ctile{padding:22px 14px 20px;text-align:center;text-decoration:none;color:var(--ink);border-left:1px solid var(--line);transition:background .2s}
.ctile:first-child{border-left:0}
.ctile:hover{background:var(--soft)}
.ctile .i{display:flex;justify-content:center;margin-bottom:9px;color:var(--c,var(--blue))}
.ctile b{font-family:'Poppins';font-weight:600;font-size:.9rem;display:block;line-height:1.2}
.ctile small{color:var(--muted);font-size:.74rem;display:block;margin-top:3px}
@media(max-width:900px){.cattiles{display:flex;overflow-x:auto;-webkit-overflow-scrolling:touch;margin-top:26px;scrollbar-width:none}.cattiles::-webkit-scrollbar{display:none}.ctile{flex:0 0 auto;width:124px;border-top:0}.ctile small{display:none}.ctile b::after{content:"";display:block;width:26px;height:3px;border-radius:2px;background:var(--c,var(--blue));margin:8px auto 0}}

section.block{padding:var(--sp) 0}
.band{background:var(--soft)}

/* plan your trip — affiliate cards */
.plan-title{margin-bottom:6px}
.plan-sub{color:var(--muted);font-size:1rem;margin-bottom:26px}
.plan-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.pcard{display:flex;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;text-decoration:none;color:var(--ink);box-shadow:var(--sh);transition:transform .22s var(--bounce),box-shadow .2s}
.pcard:hover{transform:translateY(-6px);box-shadow:var(--sh-lg)}
.pthumb{position:relative;flex:none;width:38%;min-width:92px;background-color:var(--c,var(--blue));background-image:linear-gradient(150deg,rgba(255,255,255,.22),rgba(0,0,0,.24));display:grid;place-items:center;overflow:hidden}
.pthumb-ic{width:38px;height:38px;color:#fff;opacity:.95}
.pthumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.pbody{flex:1;min-width:0;padding:15px 16px 16px;display:flex;flex-direction:column}
.pbody h3{font-family:'Poppins';font-size:1.02rem;font-weight:700;color:var(--navy);line-height:1.22;margin-bottom:5px}
.pbody p{color:var(--muted);font-size:.85rem;line-height:1.45;margin-bottom:12px;flex:1}
.pwr-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.pwr{font-size:.72rem;color:var(--muted);line-height:1.25}
.pwr b{display:block;color:var(--ink);font-weight:700;font-size:.84rem}
.parrow{flex:none;width:28px;height:28px;border-radius:50%;background:var(--c,var(--blue));color:#fff;display:grid;place-items:center;transition:transform .2s}
.pcard:hover .parrow{transform:translateX(2px)}
.plan-cta{width:100%;margin-top:13px;min-height:44px;padding:11px 18px;font-size:.94rem}
.ic-blue{background:var(--blue)}.ic-deep{background:var(--blue-deep)}.ic-grape{background:var(--purple)}.ic-orange{background:var(--orange)}.ic-mint{background:var(--teal)}.ic-coral{background:var(--coral)}
@media(max-width:1024px){
  .plan-grid{grid-template-columns:repeat(2,1fr)}
  .plan-cta{display:none}
  .pbody{padding:13px 14px}
  .pbody h3{font-size:.95rem}
  .pbody p{font-size:.8rem;margin-bottom:8px}
  .pthumb{width:34%;min-width:76px}
  .pthumb-ic{width:30px;height:30px}
}

/* find your ferry + transfer */
.findferry{display:grid;grid-template-columns:1.4fr 1fr;gap:22px;margin-top:30px;align-items:stretch}
.fform{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-lg);padding:22px}
.ftabs{display:flex;gap:6px;margin-bottom:16px}
.ftab{padding:8px 15px;border-radius:var(--pill);font-family:'Poppins';font-weight:600;font-size:.84rem;background:#eef3fa;color:var(--muted);border:0;cursor:pointer}
.ftab.on{background:var(--blue-soft);color:var(--blue-deep)}
.fgrid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.field label{display:block;font-size:.76rem;color:var(--muted);font-weight:600;margin-bottom:5px}
.field .inp{display:flex;align-items:center;gap:8px;border:1px solid var(--line-2);border-radius:11px;padding:11px 12px;background:#fff;transition:border-color .2s,box-shadow .2s}
.field .inp:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px rgba(36,99,235,.14)}
.field .inp svg{color:var(--muted);flex:none}
.field input,.field select{border:0;outline:0;font-family:inherit;font-size:.93rem;font-weight:500;color:var(--ink);width:100%;background:transparent}
.frow{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end;margin-top:12px}
.frow .btn{height:48px}
.fnote{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:14px;color:var(--muted);font-size:.82rem}
.fnote span{display:inline-flex;align-items:center;gap:6px}.fnote svg{color:var(--green)}
.xfercard{background:linear-gradient(160deg,var(--navy),#13284a);color:#fff;border-radius:var(--r-lg);box-shadow:var(--sh-lg);padding:24px;display:flex;flex-direction:column;justify-content:center}
.xfercard h3{color:#fff;font-size:1.2rem;margin-bottom:6px}
.xfercard p{color:rgba(255,255,255,.8);font-size:.92rem;margin-bottom:14px}
.xfercard .price{font-family:'Poppins';font-weight:800;font-size:2.4rem;line-height:1}
.xfercard .price small{font-size:.85rem;font-weight:500;color:rgba(255,255,255,.7)}
.xfercard ul{list-style:none;margin:14px 0 18px}
.xfercard li{display:flex;align-items:center;gap:8px;font-size:.9rem;margin-bottom:7px;color:rgba(255,255,255,.92)}
.xfercard li svg{color:#7fe0b0;flex:none}
@media(max-width:840px){.findferry{grid-template-columns:1fr}.fgrid{grid-template-columns:1fr 1fr}.frow{grid-template-columns:1fr 1fr}.frow .btn{grid-column:1/-1}}
@media(max-width:480px){.fgrid{grid-template-columns:1fr}.frow{grid-template-columns:1fr}}

/* why stay */
.whystay{display:grid;grid-template-columns:1fr 1fr;gap:0;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh)}
.whystay .pic img{width:100%;height:100%;min-height:330px;object-fit:cover}
.whystay .body{padding:clamp(28px,3.5vw,42px)}
.whystay h2{margin-bottom:12px}.whystay>.body>p{color:var(--muted);margin-bottom:16px}
.checks{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;margin-bottom:18px}
.checks .c{display:flex;align-items:center;gap:9px;font-weight:500;font-size:.95rem}
.checks .c svg{color:var(--green);flex:none}
.rating{display:flex;align-items:center;gap:10px;margin-top:14px;color:var(--muted);font-size:.88rem}
.stars{color:var(--sun);display:inline-flex}
@media(max-width:780px){.whystay{grid-template-columns:1fr}.whystay .pic img{min-height:220px}.checks{grid-template-columns:1fr}}

/* essentials */
.essentials{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-top:30px}
.ecard{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:18px 14px;text-align:center;text-decoration:none;color:var(--ink);transition:transform .22s var(--bounce)}
.ecard:hover{transform:translateY(-4px);box-shadow:var(--sh)}
.ecard .i{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:var(--blue-soft);color:var(--blue);margin:0 auto 9px}
.ecard b{font-family:'Poppins';font-weight:600;font-size:.84rem;display:block;line-height:1.2}
@media(max-width:860px){.essentials{grid-template-columns:repeat(3,1fr)}}
@media(max-width:480px){.essentials{grid-template-columns:repeat(2,1fr)}}

/* help band */
.help{background:var(--cream);border-radius:var(--r-lg);padding:clamp(30px,4vw,46px);text-align:center}
.msg-row{display:flex;flex-wrap:wrap;gap:11px;justify-content:center;margin-top:8px}
.msg{display:inline-flex;align-items:center;gap:9px;color:#fff;text-decoration:none;font-weight:600;font-size:.93rem;padding:12px 19px;border-radius:var(--pill);min-height:48px;transition:transform .22s var(--bounce),filter .2s}
.msg:hover{transform:translateY(-3px);filter:brightness(1.06)}
.msg svg{width:18px;height:18px;fill:currentColor;flex:none}
.wa{background:#1faa54}.me{background:#0a7cff}.vb{background:#7360f2}.ig{background:#d6336c}.cl{background:var(--navy)}.em{background:#fff;color:var(--ink);border:1px solid var(--line-2)}.em svg{fill:none;stroke:var(--muted);stroke-width:2}

/* footer */
.ft{background:var(--navy);color:rgba(255,255,255,.7);padding:54px 0 30px}
.ft-cols{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr 1.4fr;gap:28px}
.ft .logo{color:#fff}.ft .logo b{color:var(--sun)}
.ft .tag{margin-top:11px;font-size:.9rem;max-width:24em;line-height:1.6}
.ft .soc{display:flex;gap:10px;margin-top:14px}
.ft .soc a{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:rgba(255,255,255,.1);color:#fff}
.ft .soc a:hover{background:var(--blue)}.ft .soc svg{width:16px;height:16px;fill:currentColor}
.ft h4{font-family:'Poppins';color:#fff;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:13px}
.ft ul{list-style:none}.ft li{margin-bottom:9px}
.ft a{color:rgba(255,255,255,.78);text-decoration:none;font-size:.92rem}.ft a:hover{color:#fff}
.nl p{font-size:.9rem;margin-bottom:12px}
.nl form{display:flex;gap:8px;flex-wrap:wrap}
.nl input{flex:1;min-width:150px;padding:11px 14px;border:1px solid rgba(255,255,255,.2);border-radius:11px;background:rgba(255,255,255,.08);color:#fff;font-family:inherit;font-size:.92rem}
.nl input::placeholder{color:rgba(255,255,255,.5)}
.nl .ok{font-size:.85rem;color:#7fe0b0;margin-top:8px;display:none}
.ftbar{max-width:var(--maxw);margin:30px auto 0;padding:18px 22px 0;border-top:1px solid rgba(255,255,255,.12);display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:center;font-size:.82rem;color:rgba(255,255,255,.5)}
.ftbar .flag{display:inline-flex;align-items:center;gap:7px}
@media(max-width:900px){.ft-cols{grid-template-columns:1fr 1fr}.nl{grid-column:1/-1}}
@media(max-width:480px){.ft-cols{grid-template-columns:1fr}}

/* anim */
.reveal{opacity:0;transform:translateY(20px);animation:rise .7s cubic-bezier(.2,.7,.2,1) forwards}
.d1{animation-delay:.05s}.d2{animation-delay:.16s}.d3{animation-delay:.27s}.d4{animation-delay:.38s}
@keyframes rise{to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}

/* mobile bottom tab bar */
.tabbar{display:none}
@media(max-width:780px){
.tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:55;background:#fff;border-top:1px solid var(--line);box-shadow:0 -10px 26px -18px rgba(11,40,90,.45)}
.tabbar a,.tabbar button{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 0 7px;background:none;border:0;cursor:pointer;color:var(--muted);font-family:'Hanken Grotesk';font-weight:600;font-size:.66rem;text-decoration:none}
.tabbar a.on{color:var(--blue)}
.tabbar svg{width:22px;height:22px}
body{padding-bottom:62px}
}
